我是 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....
尝试这个。有用
{% 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)
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |