我有一个元组列表,如下所示:
answer_guess_list = [('A',), ('B', 'C',), ('A', 'B', 'C', 'D',)]
在我的模板中,我有一个名称相同的模板变量。
{% for guess_list in answer_guess_list %}
<p>
{% for guess_value in guess_list %}
{{ guess_value }}, # Notice the comma (,)
{% endfor %}
</p>
{% empty %}
<p>Nothing to show.</p>
{% endfor %}
它显示如下列表:
A,
B, C,
A, B, C, D,
我不想使用终端逗号,而是将其显示为:
A
B, C
A, B, C, D
我不知道如何实现这一目标。 你能帮忙吗?
答案 0 :(得分:1)
这是一种方法:
{% for guess_list in answer_guess_list %}
<p>
{% for guess_value in guess_list %}
{{ guess_value }}{% if forloop.counter < guess_list|length %}, {% endif %}
{% endfor %}
</p>
{% empty %}
<p>Nothing to show.</p>
{% endfor %}
或者您也可以使用内置模板过滤器join:
{% for guess_list in answer_guess_list %}
<p>
{{ guess_list|join:", " }}
</p>
{% empty %}
<p>Nothing to show.</p>
{% endfor %}
答案 1 :(得分:0)
Here是模板标签的文档,下面是它自己的标签。
@register.filter(name="my_filter")
def fltr(tpl):
return ','.join([str(i) for i in tpl])
按照文档中的说明注册此标记后,您可以将其用作:
<p>
{% for guess_value in guess_list %}
{{ guess_value|my_filter }},
{% endfor %}
</p>