Django URL参数键使用了两次

kzh*_*kzh 1 django django-templates

我有一个简单的Django视图,只返回URL参数,但如果我多次使用相同的参数键,我似乎无法访问它.考虑以下设置:

urls.py:

(r'^header/$',header)
Run Code Online (Sandbox Code Playgroud)

查看功能:

def header(request)
    return render_to_response('header.html',locals(),mimetype='text/plain')
Run Code Online (Sandbox Code Playgroud)

模板:

{{ request.GET }}
{% for key,val in request.GET %}
{{ key }} : {{ val }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

网址:

  • http://mysite/header/?item=1&item=2

响应:

<QueryDict: {u'item': [u'1', u'2']}>

item : 2
Run Code Online (Sandbox Code Playgroud)

"item"条目的值是"1,2"还是"['1','2']"?注意完整的GET返回的内容.我如何获得这两个值?

Lan*_*ney 5

查看QueryDict的文档,该文档用于保存GET/POST属性.

特别:

QueryDict是一个类似字典的类,用于处理同一个键的多个值.这是必要的,因为某些HTML表单元素,特别是<select multiple="multiple">为同一个键传递多个值.

您可能想要使用QueryDict.lists():

q = QueryDict('a=1&a=2&a=3')
q.lists()
[(u'a', [u'1', u'2', u'3'])]
Run Code Online (Sandbox Code Playgroud)