Tùy chọn khác là nếu bạn có bộ lọc mà bạn luôn muốn áp dụng, để thêm trình quản lý tùy chỉnh trên mô hình được đề cập, mô hình này luôn áp dụng bộ lọc cho các kết quả trả về.
Một ví dụ điển hình về điều này là một Event
mô hình, trong đó 90% các truy vấn bạn thực hiện trên mô hình, bạn sẽ muốn một cái gì đó tương tự Event.objects.filter(date__gte=now)
, tức là bạn thường quan tâm đến Events
điều đó sắp tới. Điều này sẽ trông giống như:
class EventManager(models.Manager):
def get_query_set(self):
now = datetime.now()
return super(EventManager,self).get_query_set().filter(date__gte=now)
Và trong mô hình:
class Event(models.Model):
...
objects = EventManager()
Nhưng một lần nữa, điều này áp dụng cùng một bộ lọc đối với tất cả các truy vấn mặc định được thực hiện trên Event
mô hình và do đó không linh hoạt như một số kỹ thuật được mô tả ở trên.