условно фильтрующая объекты

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

Мне было интересно, если условный фильтр применим в Django. То есть «фильтровать, если переменная не равна None, или не применять фильтрацию иначе».

Что-то вроде этого:

user = User.objects.get(pk=1)
category = Category.objects.get(pk=1)
todays_items = Item.objects.filter(user=user, date=now()).conditional_filter(category=category))

То, что я хотел бы сделать, это применить фильтр категории, только если категория не None.

Если категория None (означает, что она не указана в объекте запроса), тогда этот фильтр не будет применяться вообще. Это спасло бы меня от «if-elif-else» ситуации.

Есть ли способ сделать это?

Ответы на вопрос(4)

Ваш ответ на вопрос