2016-06-27 9 views
0

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']}> 
+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()'は ' 'ですが、それをまだ調べる方法はわかりません。 'QUERY_STRING'は' t_from = A&t_to = B&filter_tags = aenean'です。 – roboslone

答えて

0

は、私は明示的に私は完全について:(それを修正忘れて、すべてが今、スムーズに実行、私のJSコードで{{ request.GET.filter_tags }}を使用していたが判明

ジョン・クレメンツ、ハリドはBurhan、marcelm、おかげでみんな!

関連する問題