django warunkowo filtruje obiekty

Chciałbym pobrać kilka wierszy z mojej bazy danych za pomocą zestawu filtrów.

Zastanawiałem się, czy filtr warunkowy ma zastosowanie w django. Oznacza to, że „filtruj, jeśli zmienna nie jest Brak, lub nie stosuj filtrowania w inny sposób”.

Coś takiego:

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))

To, co chciałbym zrobić, to zastosować filtr kategorii tylko wtedy, gdy kategoria nie jest Brak.

Jeśli kategoria jest Brak (oznacza, że ​​nie jest podana w obiekcie żądania), filtr ten nie zostanie w ogóle zastosowany. Pozwoliłoby mi to zaoszczędzić mnóstwo sytuacji „jeśli-elif-else”.

Czy istnieje sposób, aby to zrobić?