【问题标题】:Django Newbie ManyToManyField Template QuestionDjango Newbie ManyToManyField 模板问题
【发布时间】:2011-01-10 16:46:00
【问题描述】:

我有一个带有 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

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

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

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

    <p>{% for item in painting.style.all %}
      {{item.style}} {% if not forloop.last %}, {% endif %}
    {% endfor %}</p>
    
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 2012-07-04
      • 2019-08-07
      • 1970-01-01
      相关资源
      最近更新 更多