from datetime import datetimefrom django.db.models import Managerfrom 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, PostMixin): 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 = PostManager()
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()