django condicionalmente filtragem de objetos

Eu gostaria de recuperar um monte de linhas do meu banco de dados usando um conjunto de filtros.

Eu queria saber se o filtro condicional é aplicável no django. Ou seja, "filter if variable não é None, ou não aplica filtragem de outra forma".

Algo assim:

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

O que eu gostaria de fazer é aplicar o filtro de categoria somente se a categoria não for None.

Se category for None (significa que não é dado no objeto request), então este filtro não será aplicado. Isso me salvaria um monte de situações 'if-elif-else'.

Existe uma maneira de fazer isso?

questionAnswers(4)

yourAnswerToTheQuestion