2016-06-27 4 views
0

Django 1.9, Python 3.5.1.Django QueryDict объединяет параметры GET

У меня есть вход Select2 в моей форме, который хранит его данные в параметре filter_tags. я могу увидеть что-то вроде этого в журнале сервера:

[...] "GET /events?t_from=A&t_to=B&filter_tags=accumsan&filter_tags=alpha&filter_tags=aenean HTTP/1.1" 200 12290 

Но когда я пытаюсь получить доступ к QueryDict в request.GET на мой взгляд, я вижу, что он не имеет список из трех значений, но вместо этого есть только одно последнее значение :

<QueryDict: {'t_from': ['A'], 'filter_tags': ['aenean'], 't_to': ['B']}> 

И вот request.GET.getlist('filter_tags') только последний товар.

Я запускаю Django с manage.py runserver и не использую перед ним какой-либо веб-сервер (например, nginx, apache). Я пытался отключить каждое промежуточное ПО, но это не помогло. Я также не манипулировать request.GET в любом случае, в основном мой взгляд ничего не делать с ним:

def my_view(request): 
    logging.warning(request.GET) 
    ... 

Как я могу получить все мои filter_tags?

UPD создания вручную QueryDict, кажется, работает просто отлично:.

q = QueryDict('t_from=A&t_to=B&filter_tags=ac&filter_tags=accumsan') 
<QueryDict: {'t_from': ['A'], 't_to': ['B'], 'filter_tags': ['ac', 'accumsan']}> 
+0

вы пробовали использовать [QueryDict.lists()] (https://docs.djangoproject.com/en/1.9/ref/request-response/# Джанго .http.QueryDict.lists)? –

+0

Что такое вывод 'request.META ['QUERY_STRING']'? –

+0

'request.GET.lists()' is '', не знаю, как его проверить. 'QUERY_STRING' is' t_from = A & t_to = B & filter_tags = aenean' – roboslone

ответ

0

Оказывается, я был явно с помощью {{ request.GET.filter_tags }} в мой JS код, который я совершенно забыл об :(Fixed это и теперь все проходит гладко

Джон Клементс, Бурхан Халид, marcelm, спасибо, ребята!

Смежные вопросы