我有一个简单的Django视图,只返回URL参数,但如果我多次使用相同的参数键,我似乎无法访问它。请考虑以下设置:
urls.py:
(r'^header/$',header)
查看功能:
def header(request)
return render_to_response('header.html',locals(),mimetype='text/plain')
模板:
{{ request.GET }}
{% for key,val in request.GET %}
{{ key }} : {{ val }}
{% endfor %}
URL:
http://mysite/header/?item=1&item=2
响应:
<QueryDict: {u'item': [u'1', u'2']}>
item : 2
'item'条目的值是'1,2'还是'['1','2']?注意完整的GET返回的内容。我如何获得这两个值?
答案 0 :(得分:5)
查看用于保存GET / POST属性的QueryDict的文档。
具体做法是:
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'])]
答案 1 :(得分:1)
它返回列表中的多个值。在后端,您可以检查变量是否是列表,然后相应地处理案例。看起来有一些逻辑可以返回分配给键的最后一个值,如果你将它强制转换为像你一样的字符串。