Diğer seçenek, her zaman uygulanmasını istediğiniz bir filtreniz varsa, söz konusu modele, filtreyi döndürülen sonuçlara her zaman uygulayan özel bir yönetici eklemektir .
Bunun güzel bir örneği, Event
model üzerinde yaptığınız sorguların% 90'ında buna benzer bir şey isteyeceğiniz Event.objects.filter(date__gte=now)
, yani normalde Events
gelecek olanlarla ilgileneceğiniz bir modeldir . Bu şöyle görünür:
class EventManager(models.Manager):
def get_query_set(self):
now = datetime.now()
return super(EventManager,self).get_query_set().filter(date__gte=now)
Ve modelde:
class Event(models.Model):
...
objects = EventManager()
Ancak yine, bu aynı filtreyi Event
modelde yapılan tüm varsayılan sorgulara uygular ve bu nedenle yukarıda açıklanan tekniklerin bazıları kadar esnek değildir.