django Objekte bedingt filtern

Ich möchte mit einer Reihe von Filtern eine Reihe von Zeilen aus meiner Datenbank abrufen.

Ich habe mich gefragt, ob der bedingte Filter in Django anwendbar ist. Das heißt, "filtern, wenn die Variable nicht None ist, oder keine andere Filterung anwenden".

Etwas wie das:

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

Ich möchte den Kategoriefilter nur anwenden, wenn die Kategorie nicht Keine lautet.

Wenn Kategorie "Keine" ist (dh, sie ist im Anforderungsobjekt nicht angegeben), wird dieser Filter überhaupt nicht angewendet. Das würde mir ein paar Situationen ersparen.

Gibt es eine Möglichkeit, dies zu tun?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage