Django模板遍历request.GET中的列表

时间:2014-02-07 19:07:50

标签: python django django-templates

我今天的问题是我要在请求中保留我的观点中的一些网址参数。

考虑以下网址:

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 %}来迭代值,但这只打印出“值”列表中的最后一项,在这种情况下“无论”

有人有同样的问题吗?我该如何解决?感谢

1 个答案:

答案 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>