Из дзен Python:
>>> import this
The Zen of Python, by Tim Peters
...
Explicit is better than implicit.
...
>>>
Может быть, ваша ситуация сложнее, чем я предполагаю из вашего примера кода, но ИМХО, вам просто нужно использовать фильтр:
Video.objects.filter(private=False)
Если вы пытаетесь сэкономить штрихи типа для общих фильтров, помните, что наборы запросов ленивы, поэтому вы можете сохранить их:
private_videos = Video.objects.filter(private=False)
...
private_videos.objects.filter(director='Frederico Felini').order_by('-year')
Первое назначение не будет инициировать связь с базой данных.Запасные пользовательские менеджеры для более сложных вещей.
Я видел этот шаблон множества методов моделей и / или пользовательских менеджеров, потому что система шаблонов Django sux ^ H ^ H ^ Его преднамеренно ограничен (вы не можете вызывать методыс аргументами без создания шаблонных фильтров).Если это так, переключите слой шаблона на Jinja2.