Django фильтр только если дано значение - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу получить количество сайтов в каждой стране. Теперь, если страна не указана, результатом должно быть количество сайтов для всех стран. Мой запрос выглядит следующим образом:

Devices = GatewayDevice.objects.prefetch_related("model").filter(
            model__site__country=country, end_date=None
        )

Прежде чем выполнить запрос, я могу проверить, имеет ли параметр страна значение NULL, и дать ему и другое значение, например, пример ALL (не работает). Как я могу справиться с этим?

1 Ответ

2 голосов
/ 27 февраля 2020

Самый простой способ - использовать if операторы:

if country is None:
    Devices = GatewayDevice.objects.prefetch_related("model").filter(end_date=None)
else:
    Devices = GatewayDevice.objects.prefetch_related("model").filter(
            model__site__country=country, end_date=None
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...