Django新手ManyToManyField模板问题
我有一个带有ManyToManyField的Django模型,我试图在模板中的逗号分隔列表中迭代该字段的内容。我得到了一些意想不到的结果Django新手ManyToManyField模板问题,django,django-templates,Django,Django Templates,我有一个带有ManyToManyField的Django模型,我试图在模板中的逗号分隔列表中迭代该字段的内容。我得到了一些意想不到的结果 {% for painting in paintings_list %} <p>{% for item in painting.style.all %} {{ item.style|join:', ' }} {% endfor %}</p> {% endfor %} {%用于绘画中的绘画\u列表%} {
{% for painting in paintings_list %}
<p>{% for item in painting.style.all %}
{{ item.style|join:', ' }}
{% endfor %}</p>
{% endfor %}
{%用于绘画中的绘画\u列表%}
{painting.style.all%中项目的%s}
{{item.style | join:','}}
{%endfor%}
{%endfor%}
内容在数据库中的显示方式与它们在数据库中的显示方式相同,但它们的显示方式出乎意料……即。而不是:
文艺复兴、巴洛克、表现主义
我得到:
R、 e,n,a,i,s,s,a,n,c,e,,B,a,R,o,q,u,e,e,x,p,R,e,s,s,i,o,n,i,s,t
知道我做错了什么吗?本以为联接模板筛选器正是针对这种类型的场景,但可能正确的方法是创建模型的自定义方法…
项。style
返回一个字符串,因此您将每个字符联接为,
,而不是每个项。Ignacio Vasquez Abrams是正确的(与往常一样). 问题的解决方案可能在于forloop变量
<p>{% for item in painting.style.all %}
{{item.style}} {% if not forloop.last %}, {% endif %}
{% endfor %}</p>
{painting.style.all%中项目的%
{{item.style}{%if非forloop.last%},{%endif%}
{%endfor%}
指向文档的链接: