Как фильтровать по всем в наборе запросов

У меня есть набор запросов внутри функции. В некоторых случаях я хочу фильтровать по определенной модели.

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)

И определите новый менеджер в модели.

Здесь более подробно о менеджере.

Вернуться на верх