Как фильтровать по всем в наборе запросов
У меня есть набор запросов внутри функции. В некоторых случаях я хочу фильтровать по определенной модели.
cars = Car.objects.filter(model='Toyota')
В других случаях я вообще не хочу фильтровать по этому полю. Например (синтаксис неправильный, но он демонстрирует то, что мне нужно)
cars = Car.objects.filter(model=all)
Как включить поле в набор запросов, как показано выше, но не дать ему ограничивать результаты?
Спасибо!
Вы можете написать собственный менеджер для своей модели и изменить filter()
.
from django.db import models
class NewManager(models.Manager):
def filter(self, **kwargs):
if kwargs == {'model': 'all'}
return self.all()
else:
return self.filter(**kwargs)
И определите новый менеджер в модели.
Здесь более подробно о менеджере.