模板中带逗号的django concat字符串

Rej*_*lam 0 python django

我是 Django 的新手。如何在 Django 模板的 for 循环中连接字符串

{% for lead in project.leaders %}
    {% if forloop.counter == 1 %}
        {% lead_member = lead.0 %}
     {% else %}
        {% lead_member = ','.lead.0 %}
     {% endif %}
{{ lead_member }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

最后我的lead_member应该是test1,test2,test3....

现在发生了什么(我当前的代码)

 {% for lead in project.leaders %}
    {{ lead.0}}
 {% endfor %}
Run Code Online (Sandbox Code Playgroud)

输出是test1test2test3....但我想和test1,test2,test3....

Bra*_*don 5

尝试这个。有用

{% for lead in project.leaders %}
    {{ lead.0 }}{% if not forloop.last %}, {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

不需要分配任何东西,也不需要使用分配标签的那种复杂性。为了让你的模板变得愚蠢简单,你总是可以在你的视图中这样做,甚至在模型级别:

# don't step on the `join` built-in
from django.template.defaultfilters import join as join_filter

class Project(models.Model):

    @property
    def leaders(self):
        return join_filter(self.objects.values_list('some_field', flat=True), ', ')
Run Code Online (Sandbox Code Playgroud)

然后你在模板中要做的就是:

{{ project.leaders }}
Run Code Online (Sandbox Code Playgroud)