gpt4 book ai didi

django - 在没有尾随逗号的django模板中打印列表

转载 作者:行者123 更新时间:2023-12-04 15:51:16 26 4
gpt4 key购买 nike

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

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

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

def song(request, song_id):
"""Show a single song."""
song = Song.objects.get(id=song_id)
date_added = song.date_added
artist = song.artist
url = song.url
year = song.year
genres = song.genre.all()
country = song.country
producer = song.producer.all()
label = song.label
source = song.source
source_url = song.source_url
comments = song.comments
context = {'song': song, 'date_added': date_added, 'artist': artist,
'url': url, 'year': year, 'genres': genres, 'country': country,
'producers': producer, 'label': label, 'source': source,
'source_url': source_url, 'comments': comments}

return render(request, 'great_songs_app/song.html', context)

有没有办法将'producer'变成一个字典,并以一种方式将它传递给模板,除了最后一个项目之外的所有项目都将用逗号分隔?

最佳答案

您可以使用内置的 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>

关于django - 在没有尾随逗号的django模板中打印列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com