在django模板中打印列表,不带逗号

时间:2018-12-16 19:47:55

标签: django python-3.x

我的Django模板正在打印一个列表,其中元素之间用逗号分隔,但是最后一项也总是带有逗号。通过执行以下操作,我能够解决模板中的问题:

Type 'Any' has no subscript members

但是在阅读了一些此处的帖子之后,我认为最好在views.py文件中进行操作。我不知道该怎么做,也无法真正理解此处的其他帖子。这是相应的视图文件:

statusBarNotification.getNotification().actions

是否有一种方法可以将“生产者”转换成字典并将其传递给模板,从而使除最后一项以外的所有项目都用逗号分隔?

2 个答案:

答案 0 :(得分:2)

您可以使用内置的join模板(参考https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#join

所以你的例子:

<li>Producer:
  {% for producer in producers %}
    {% if not forloop.last %}
      {{ producer }},
    {% else %}
      {{ producer }}
    {% endif %}
  {% endfor %}
</li>

只会变成:

<li>Producer:
  {{ producers|join:', ' }}
</li>

答案 1 :(得分:0)

您可以将其作为公用的分隔字符串发送。另外,它应该是生产者,而不是生产者

context = {'song': song, 'date_added': date_added, 'artist': artist, 
    'url': url, 'year': year, 'genres': genres, 'country': country,
    'producers': ','.join(map(str, song.producer.all())), 'label': label, 'source': source,
    'source_url': source_url, 'comments': comments}