L’expérience est une lanterne que l’on porte sur le dos et qui n’éclaire jamais que le chemin parcouru. Confucius

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - manager

Fil des billets - Fil des commentaires

mardi, 4 mars 2014

Chainer les requêtes Django


from datetime import datetime
from django.db.models import Manager
from django.db.models.query import QuerySet
class TodoMixin(object):
def is_done(self):
return self.filter(done=is_true))
#ecrire ici vos nouvelles méthodes
def order_by_user(self):
return self.order_by(user)
class TodoQuerySet(QuerySet, TodoMixin):
pass
class TodoManager(Manager, TodoMixin):
def get_query_set(self):
return TodoQuerySet(self.model, using=self._db)
class Todo(models.Model):
done = models.BooleanField()
objects = TodoManager()

L'implémentation permet de passer de :

Todo.objects.filter(done = True)

à

Todo.objects.is_done()

Très pratique côté template.

 Et il est possible de chainer de la facon suivante :

Todo.objects.is_done().order_by_user()

mercredi, 23 novembre 2011

Django - QuerySetManager - Bonnes pratiques

J'ai déjà parlé de l'intérêt des querySetManager et de leur mise en place dans un projet Django. Désormais avec un peu de recul et l'intervention d'Olivier Meunier (l'homme aux milles pseudonymes), il semble plus pertinent d'externaliser la création du manager et du queryset. C'est à dire, pour l'exemple ci-dessous, définir tout ce joyeux code en dehors de la classe "Project".

Lire la suite...

jeudi, 21 octobre 2010

Django Managers, Queryset Managers. Récupérer vos retraités rapidement.

Si je voulais faire simple et rapide je vous conseillerais de lire la documentation Django sur les Managers ainsi que la version 1.2. Tout est très bien expliqué. Je me permets ici de réexpliquer rapidement l'intérêt de la chose et de présenter une autre approche, tout aussi intéressante des querysets managers.

Lire la suite...