условно фильтрующая объекты
Я хотел бы получить кучу строк из моей базы данных, используя набор фильтров.
Мне было интересно, если условный фильтр применим в 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» ситуации.
Есть ли способ сделать это?