Django 1.9、Python 3.5.1。Django QueryDictがGETパラメータをマージする
自分のフォームにSelect2入力があり、データをfilter_tags
paramに保存しています。
[...] "GET /events?t_from=A&t_to=B&filter_tags=accumsan&filter_tags=alpha&filter_tags=aenean HTTP/1.1" 200 12290
をしかし、私は私の見解でrequest.GET
でのQueryDictにアクセスしようとすると、私はそれが3つの値のリストを持っていないことがわかり、代わりに一つだけ最後の値を持っています 私は、サーバーログに次のようなものを見ることができます:
<QueryDict: {'t_from': ['A'], 'filter_tags': ['aenean'], 't_to': ['B']}>
だからrequest.GET.getlist('filter_tags')
最後の項目のみ。
私はDjangoをmanage.py runserver
で開始し、その前にはどんな種類のWebサーバーも使用しません(nginx、apacheなど)。そこにあるすべてのミドルウェアを無効にしようとしましたが、それは助けになりませんでした。また、私は基本的に私の見解はそれで何もしない、どのような方法でrequest.GETを操作しないでください:
def my_view(request):
logging.warning(request.GET)
...
は、どのように私はすべての私のfilter_tags
を得るのですか?手動でのQueryDictを作成
UPD だけで正常に動作するようです:
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']}>
あなたは[QueryDict.lists()](https://docs.djangoproject.com/en/1.9/ref/request-response/#を使用してみましたジャンゴ.http.QueryDict.lists)? –
'request.META ['QUERY_STRING']'の出力は何ですか? –
'request.GET.lists()'は ' 'ですが、それをまだ調べる方法はわかりません。 'QUERY_STRING'は' t_from = A&t_to = B&filter_tags = aenean'です。 –
roboslone