Inną opcją jest to, że jeśli masz filtr, który zawsze chcesz zastosować, możesz dodać niestandardowego menedżera do danego modelu, który zawsze stosuje filtr do zwracanych wyników.
Dobrym przykładem jest Eventmodel, w którym dla 90% zapytań, które wykonujesz na modelu, będziesz chciał czegoś takiego Event.objects.filter(date__gte=now), tj. Normalnie jesteś zainteresowany Eventstym, co nadchodzi. To wyglądałoby tak:
class EventManager(models.Manager):
def get_query_set(self):
now = datetime.now()
return super(EventManager,self).get_query_set().filter(date__gte=now)
A w modelu:
class Event(models.Model):
...
objects = EventManager()
Ale znowu, to stosuje ten sam filtr do wszystkich domyślnych zapytań wykonywanych w Eventmodelu, więc nie jest tak elastyczny w przypadku niektórych technik opisanych powyżej.