Django Newbie ManyToManyField模板问题

时间:2010-01-29 02:29:06

标签: django django-templates

我有一个带有ManyToManyField的Django模型,我试图在模板中以逗号分隔的列表中迭代该字段的内容。我得到了一些意想不到的结果。

{% for painting in paintings_list %}
    <p>{% for item in painting.style.all %}
        {{ item.style|join:', ' }}
    {% endfor %}</p>
{% 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

知道我做错了什么吗?本来可以认为连接模板过滤器适用于这种类型的场景,但也许正确的方法是创建模型的自定义方法...

2 个答案:

答案 0 :(得分:7)

Ignacio Vasquez-Abrams是正确的(像往常一样)。问题的解决方案可能在于forloop变量。

<p>{% for item in painting.style.all %}
  {{item.style}} {% if not forloop.last %}, {% endif %}
{% endfor %}</p>

答案 1 :(得分:0)

item.style正在返回一个字符串,因此您要使用,而不是每个项目加入每个字符。