我今天的问题是我要在请求中保留我的观点中的一些网址参数。
考虑以下网址:
http://localhost:8000/some-url/?myargument=hello&myargument=world&myargument=whatever
注意到我的网址中的每个参数都有相同的密钥(“myargument”)?牢记这一点
在Django 1.6中,如果我在模板中{{ request.GET }}
,我会得到类似的内容:
<QueryDict: {u'myargument': [u'hello', u'world', u'whatever']}>
要保留下一个提交中的参数,我希望通过在request.GET
内部使用键值对创建隐藏字段来迭代<form>
字典,我可以使用以下代码执行此操作:
{% for key, value in request.GET.items %}
<input type="hidden" name="{{ key }}" value="{{ value }}">
{% endfor %}
它适用于单个值,但不适用于我的情况,因为我的列表中包含名为“myargument”的键的值。
显然,我尝试的第一件事是当值为列表时通过执行{% for v in value %}
来迭代值,但这只打印出“值”列表中的最后一项,在这种情况下“无论”
有人有同样的问题吗?我该如何解决?感谢
答案 0 :(得分:4)
在视图中:
mydict = dict(request.GET._iterlists())
发送并迭代模板:
<p>
{{ mydict }}
</p>
<p>
{% for k,v in mydict.iteritems %}
{{ k }}:{% for x in v %}{{ x }},{% endfor %} <br>
{% endfor %}
</p>