Django запрос параметров в массив - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь получить результаты из массива, как описано здесь: https://docs.djangoproject.com/en/dev/ref/models/querysets/#in

http://127.0.0.1:8000/blogs?years=['2018', '2019']
http://127.0.0.1:8000/blogs?years=[2018, 2019]

Оказывается, ['2018', '2019'] не то, что я я получаю как лет , хотя визуально они выглядят одинаково.

Я даже пытался использовать getlist, как описано здесь , как получить несколько результатов, используя одинаковые параметры запроса django это действительно дает желаемые результаты

def get_queryset(self):
        years = self.request.query_params.get('years')
        return self.queryset.filter(year__in=years)

Любая подсказка, что я здесь делаю неправильно?

Я перепробовал все варианты, он не работает, хотя я ввожу в приведенном ниже утверждении, он прекрасно работает

def get_queryset(self):
        return self.queryset.filter(year__in=['2018', '2019'])

1 Ответ

0 голосов
/ 01 февраля 2020

Я не верю, что этот способ сработает. Когда вы передаете значение в строке запроса, я думаю, Django получит в виде строки.

- РЕДАКТИРОВАТЬ -

Приведенный выше ответ не сработает, необходимо добавить еще лет, я получил решение 127.0.0.1:8000/blogs?years=2018&years=2019 и годы = self.request.query_params.getlist ('years', '') преобразует это в список. - @indavinci

...