我有一个包含多个GET参数(同名)的网址 - mycompany.com/?a=1&a=2
当我在django模板中时:
{{ request.GET }}
我明白了:
<QueryDict: {'a': ['1', '2']}>
当我在django模板中时:
{{ request.GET.a }}
我明白了:
2
当我尝试循环时:
{% for a in request.GET.a %}
{{ a }}
{% endfor %}
我明白了:
2
如何在django模板中将多个GET参数表示为列表? THX!
答案 0 :(得分:1)
模板过滤器:
[应用程序/ templatetags /的 exampletag 强>的.py]
from django import template
register = template.Library()
@register.filter
def get_item(dictionary, key):
return dict(dictionary).get(key)
<强>模板:强>
{% load exampletag %}
{{ request.GET|get_item:'a' }}
答案 1 :(得分:1)
模板过滤器:
from django import template
register = template.Library()
@register.filter
def get_list(dictionary, key):
return dictionary.getlist(key)
<强>模板:强>
{% for a in request.GET|get_list:'a' %}
{{ a }}
{% endfor %}
答案 2 :(得分:0)
有点笨,但可以完成工作:
{%for list_of_elements in request.GET.lists%}
{%for element in list_of_elements.1%}
{{ element }}
{%endfor%}
{%endfor%}
或者如果您只想从查询中获取特定列表:
{%for list_of_elements in request.GET.lists %}
{%if list_of_elements.0 == "a"%}
{%for element in list_of_elements.1%}
{{ element }}
{%endfor%}
{%endif%}
{%endfor%}
答案 3 :(得分:0)
{% for name, values in request.GET.lists %}
{% if name == 'a' %}{{ values|join:", " }}{% endif %}
{% endfor %}
或
{% for name, values in request.GET.lists %}
{% if name == 'a' %}
{% for value in values %}{{ value }}{% endfor %}
{% endif %}
{% endfor %}