Django-фильтр игнорируется, когда значение параметра запроса не существует

Код, в котором возникает проблема:

class GameFilter(FilterSet):
    release = MultipleChoiceFilter(choices=Game.RELEASE_CHOICES, method='release_filter', widget=CSVWidget, required=True)
  
    def release_filter(self, queryset, name, releases):
        if releases:
            ...
        return queryset

Допустим, в моем Game.RELEASE_CHOICES, один из моих вариантов - "2", это означает, что этот запрос работает для меня http://localhost:8000/games/?release=2

В этом случае я могу достичь точки останова в release_filter методе.

BUT

Когда я пытаюсь запросить этот URL с несуществующим значением параметра запроса

http://localhost:8000/games/?release=2156

release_filter не выполняется, вообще не может достичь точки останова и все, что я получаю в ответ, это:

{
    "count": 0,
    "results": [],
    "page_size": 20
}

Хотелось бы добиться того, чтобы фильтр выполнялся, несмотря на несуществующее значение параметра запроса. Возможно ли это? Спасибо за все возможные ответы.

Вы можете попробовать следующее:

releases = request.GET.get('release',None)
# if using DRF
# releases = request.query_params.get('release',None)
if releases and releases in dict(Game.RELEASE_CHOICES).keys():
    ...
return queryset
Вернуться на верх