Django-fr

Planète Django-fr

Articles récents

Les blogs francophones qui parlent de Django

La planète Django-fr rassemble les différents contenus francophones autour de Django.

Derniers articles

Novapost's Paradise: Django1.5 : passer au Configurable User Model

Depuis la version 1.5 de Django, il est possible d'utiliser un Configurable User Model en lieu et place de django.contrib.auth.User.

Cela permet, par exemple, de se passer de proxy model ou encore de fusionner le profil avec l'utilisateur, pour éviter des join dans les requêtes SQL.

Très pratique, et facile à mettre en place sur un projet qui commence juste, mais comment gérer ça en utilisant South sur un projet déjà bien en place ?

Le but est donc de fusionner l'utilisateur et le profil, avec pour aide/contrainte d'utiliser South, autant sur ...

Publié il y a 1 mois. Lire la suite

Mathieu Agopian: Django1.5 : passer au Configurable User Model

Depuis la version 1.5 de Django, il est possible d'utiliser un Configurable User Model en lieu et place de django.contrib.auth.User.

Cela permet, par exemple, de se passer de proxy model ou encore de fusionner le profil avec l'utilisateur, pour éviter des join dans les requêtes SQL.

Très pratique, et facile à mettre en place sur un projet qui commence juste, mais comment gérer ça en utilisant South sur un projet déjà bien en place ?

Le but est donc de fusionner l'utilisateur et le profil, avec pour aide/contrainte d'utiliser South, autant sur ...

Publié il y a 1 mois. Lire la suite

Novapost's Paradise: Configurer Emacs comme un développeur Python

Introduction

Souvent on me demande qu'elle IDE j'utilise. Quand je réponds emacs, ça ne semble pas convenir à mon interlocuteur.

Voici un petit article pour transformer son emacs en véritable IDE python.

Quand je code en Python, j'ai envie de respecter la PEP-8, d'avoir la complétion des noms de fonctions et variables et que mon IDE me dise quand j'ai oublié d'importer une bibliothèque ou que j'en importe qui ne sont pas utilisées.

En Python, les tabulations font 4 espaces

On modifie le fichier .emacs avec ces deux lignes:

(setq-default indent-tabs-mode nil)  ; use ...

Publié il y a 1 mois, 1 semaine. Lire la suite

Novapost's Paradise: Django : Comment booster ses tests en 1 minute

Introduction

Hier, Boris, en stage ici pour 6 mois, me parle d'une astuce pour Django ultra simple, mais qui a tout bonnement divisé par deux notre temps de tests :O

Connexion, views et tests

Lors des tests, on doit souvent se connecter pour tester les droits de l'utilisateur ou encore accéder à des certaines pages de l'application Django décorée par un user_passes_test ou un login_required.

Si vous n'utilisez pas encore les techniques de tests unitaires des views proposée la semaine dernière par Benoît Bryon, cette solution simple va déjà vous faire gagner un temps fou.

À ...

Publié il y a 1 mois, 4 semaines. Lire la suite

nautilebleu: Testing a ØMQ async job with Python Mock

At Greenbureau, we are huge fans of ZeroMQ, a network library that eases building our queue management tool, called HGMQ.

Below is a typical job:

@hgmq.job('async_job')
def async_job(msg):
    # Do something usefull here
    actor = Actor.objects.get(name=msg["name"])
    msg = {
        "results": [fact.title for fact in actor.facts.all()]
    }
    hgmq.send_job('core/back', 'recv_async_job', msg)

The @hgmq.job decorator as the same role as the @task in Celery or the @job for rq.

As always, testing an async process is a hard job (^^). Not only being able to test the whole context, we can call the function ...

Publié il y a 2 mois, 1 semaine. Lire la suite

Novapost's Paradise: Transformer un OneToOneField en AutoField avec South

South, c'est cool. Mais des fois, il faut mettre les mains dedans, et ça devient vachement moins cool. Mais bon, à force, ça finit par rentrer.

Contexte

Dans notre projet, on a eu besoin de gérer des permissions sur des instances d'objet valables pour un rôle donné, un rôle étant affecté à des utilisateurs.

Pour cela, on a utilisé django-guardian, qui gère ces permissions soit pour un utilisateur, soit pour un groupe.

On a donc dû lier nos rôles à des groupes, avec un OneToOneField, pour gérer ces permissions.

Mais en plus, comme on fait du multi-site, et ...

Publié il y a 2 mois, 3 semaines. Lire la suite

Novapost's Paradise: Introducing gettext check_po

Introduction

Au début de notre dernier projet django nous avons décidé de le séparer en app d'un même namespace. (project.core, project.user, project.share, ...)

Cela permet de séparer les composants sur différentes VM en installant les dépendances nécessaires.

Notre projet est donc séparé en une dizaine de composants qui ont chacun leur github, setup.py, licence, numéro de version, changelog, readme, etc bien propre.

L'avantage c'est que c'est bien modulaire et prévu pour monter en charge.

Le désavantage c'est qu'il faut être rigoureux pour les releases en mettant bien à jour le changelog ...

Publié il y a 5 mois. Lire la suite

Mathieu Agopian: Djangocon 2012 Tolosa Edition

Ce 24 et 25 novembre se tenait la rencontre django-fr [1] locale à Toulouse : DjangoCon Toulouse [2]. Ce fût une fois de plus une réussite pour ces rencontres qui sont le point fort de l'année pour notre communauté.

Pardon

Je tiens tout d'abord à m'excuser pour deux points en particulier :

L'oubli

J'ai un cerveau farceur. Malgré le mail des gentils organisateurs me disant que ma présentation ET mon lightning talk étaient acceptés, je n'ai retenu que la première partie.

Je me suis donc retrouvé le matin même, à quelques minutes de mon LT, à ...

Publié il y a 5 mois, 2 semaines. Lire la suite

Mr Jmad: Les poneys envahissent la ville rose, aka DjangoCon Toulouse, vive les pains aux chocolats !

Ce week-end avait lieu la première DjangoCon Toulouse, une rencontre django régionale au pays du cassoulet. Les festivités commençaient à 11h30 le samedi avec des LT, puis une rafale de huit conférences l’après midi, et pour finir sprint et ateliers le dimanche. Cette Djangocon est également la première Cong qui n’était pas un événement autonome [...]

Publié il y a 5 mois, 3 semaines. Lire la suite

Novapost's Paradise: MPTT, des arbres et des données

Rémy insiste souvent pour que j'écrive des articles sur tel ou tel truc, je profite donc de toute l'énergie positive accumulée ce week-end lors du Djangocon-Toulouse (sans G, n'en déplaise à Rémy :) ) pour prendre ma plume^W^Wmon clavier.

Contexte

Pour un projet, nous avons eu besoin de modéliser des organisations sous forme arborescente, ce que nous avons fait avec MPTT.

Voici notre modèle:

from django.db import models
from mptt.managers import TreeManager
from mptt.models import MPTTModel, TreeForeignKey


class Organization(MPTTModel):
    parent = TreeForeignKey('self', null=True, blank=True)
    name = models.CharField(_("name"), max_length=255 ...

Publié il y a 5 mois, 3 semaines. Lire la suite

Novapost's Paradise: Djangocong Tolosa - C'est déjà terminé !

Mise en bouche

C'est une fin de mois de novembre sur les chapeaux de roues, la semaine dernière j'étais à Rennes pour Djangocong-Breizh et ce week-end Django s'était invité au Capitole du Libre pour une série de conférences et d'ateliers.

Au programme des lightning talks, des conférences, des ateliers, du partage, des rencontres, des rires des projets et quelques bières.

Nous voilà donc partis pour Toulouse.

Novapost en force

Novapost était largement représenté puisque les 2/3 de notre équipe Python R&D se trouvait sur place : Lauréline, Benoit, Mathieu et moi.

C'était la première ...

Publié il y a 5 mois, 3 semaines. Lire la suite

Novapost's Paradise: Essayez zc.buildout

zc.buildout est un outil de déploiement puissant : isolation, reproductibilité, extensibilité... Il semble pourtant relativement méconnu parmi les développeurs Django. Souffrirait-il de son apparente complexité ?

Voici une présentation de zc.buildout, un lightning-talk proposé lors de DjangoCon Toulouse 2012.

Le contenu de cette présentation a été intégré avec landslide + un thème Novapost.

Publié il y a 5 mois, 3 semaines. Lire la suite

Novapost's Paradise: Valorisez votre documentation

Rédiger une documentation efficace est un exercice difficile. La maintenir, c'est pire. Essayons donc de voir s'il existe des bonnes pratiques en la matière, et comment les mettre en place pour les projets Python, avec Sphinx.

Voici un retour d'expérience au sujet de la documentation, proposé sous forme de lightning-talk à l'occasion de DjangoCon Toulouse 2012.

Le contenu de la présentation a été intégré avec landslide + un thème Novapost.

Publié il y a 5 mois, 3 semaines. Lire la suite

Mr Jmad: Des poneys avec des chapeaux ronds  aka DjangoBreizh, les poneys envahissent la bretagne

Samedi 17 novembre c’était donc la première edition des DjangoBreizh, une rencontre django locale en bretagne organisé par Exirel (bon ok, je ne suis pas tout a fait breton et pourtant j’y étais mais j’étais une exception) Le programme se découpait ainsi : matin conférence début d’après midi LT reste de l’après midi barcamp ou atelier [...]

Publié il y a 6 mois. Lire la suite

Novapost's Paradise: Djangocong Breizh

Introduction

Je vous écris pour la première fois d'une voiture sur le retour de Rennes.

C'est un vrai plaisir de quitter Paris et d'enfin pouvoir profiter de la 3G avec Free...

Se retrouver à Rennes est toujours un bon moment et je tiens à remercier Florian pour l'organisation de cette DjangoCong.

J'ai retrouvé pas mal de connaissances et nous avons pu profiter du repas de midi et du barcamp pour bien discuter.

Ces djangocong sont toujours un grand moment pour moi.

Une présentation sur Circus

J'ai repris en partie la présentation que Tarek avait ...

Publié il y a 6 mois. Lire la suite