Проблема получения данных набора фильтров из MultipleChoiceFilter
Допустим, у меня есть следующий FilterSet:
class ReportFilter(django_filters.FilterSet):
type = django_filters.MultipleChoiceFilter(field_name="type", lookup_expr='exact')
... и Клиент отправляет следующий запрос:
www.exmaple.com/reports/?type=1&type=2
Я хочу иметь возможность получить данные набора фильтров из фильтра множественного выбора в виде списка, т.е. сделать что-то вроде этого:
class ReportFilter(django_filters.FilterSet):
...
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
types = self.data["type"]
Я ожидал, что types
даст мне список [1, 2]
, но вместо этого я получаю строку 2
. Странно то, что если я печатаю self.data
из набора фильтров, он отображает то, что я ожидаю увидеть
<QueryDict: {'type': ['1', '2']}>
Есть мысли о том, что я делаю неправильно?
self.data
является QueryDict, поэтому вы должны быть в состоянии использовать метод getlist для получения списка всех значений
types = self.data.getlist("type")