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é - queryset

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, 15 septembre 2011

Django : Trier vos utilisateurs par ordre alphabétique

Il existe probablement d'autres solutions. Dans cet article je vous donne les clés pour réussir à trier correctement les utilisateurs par nom et prénom. L'exercice est assez simple lorsque l'utilisateur a renseigné correctement son identité, c'est à dire "Nom et Prénom". Cela devient plus chaotique, quand un seul des champs est renseigné.

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...