【发布时间】:2016-04-01 06:23:44
【问题描述】:
我在 Django 应用程序中有一个模板文件,该文件使用模板变量使用来自相应视图的数据。在视图的上下文中(在呈现页面时返回)我有一个名为 len_values 的变量,它存储循环结束范围的值。我目前的 for 循环结构是这样的:
<ul class= 'list-group'>
{% for i in range(0,len_values) %}
<li class = 'list-group-item' >
Artist: {{form_artistSelect}}
Location: {{venues.i.city}}, {{venues.i.region}}
Venue: {{venues.i.name}}
Date: {{dates.i}}
tickets status: {{ticket_statuses.i}}<br>
<a href = {{ticket_urls.i}}> ticket link </a>
{% if user.is_authenticated %}
<button id = 'invite' type='button' class= 'btn btn-info btn-lg' data-toggle = 'modal' data-target='#myModal' venue={{venues.i}} date={{dates.i}} ticket_url={{ticket_urls.i}} artist = {{form_artistSelect}}> Invite a friend </button>
<button id = 'save' type = 'button' class = 'btn btn-primary-outline'> Save Concert </button>
{% endif %}
</li>
{% endfor %}
</ul>
当我尝试这段代码时,我收到了错误:Could not parse the remainder: '(0,len_values)' from 'range(0,len_values)'
我已经看到 this old SO post 似乎正在解决类似的问题,但没有基于投票的结论性答案,并且提供的答案是旧的。
在 Django 模板格式中构造这个 for 循环的正确方法是什么
【问题讨论】:
-
如您在official docs 中所见,语法为
{% for var in iterable %}。所以将range(len_values)作为可迭代对象传递。请注意:传递值列表可能会更好,然后在模板循环中,您可以使用forloop.counter访问计数器
标签: python django for-loop django-templates