Django 模板语言:使用带有 else 的 for 循环
Posted
技术标签:
【中文标题】Django 模板语言:使用带有 else 的 for 循环【英文标题】:Django Template Language: Using a for loop with else 【发布时间】:2013-04-23 15:40:52 【问题描述】:在 Django 模板语言中是否可以使用带有 for 循环的 else 子句?我相信我可以在 for 循环之前使用 if 检查,但这会重复。
python for-else
list = []
for i in list:
print i
else:
print 'list is empty'
Django 模板 for-else(我的猜测)
<h1> game.title</h1>
<table>
<tr>
% for platform in game.platform_set.all %
<td> platform.system -- $ platform.price</td>
% else %
<td>No Platforms</td>
% endfor %
</tr>
</table>
<a href="% url 'video_games:profile' game.id %"></a>
【问题讨论】:
mipadi 对“查找项目列表是否为空”的问题的回答是正确的,但 OP 错误地使用了for..else
。 Django 模板for..empty
- empty
表示for循环没有任何项目。而 Python for..else
- else
表示 for 循环没有退出(中断)。
另外,您不应该将列表命名为“列表”!在list = []
之后,您将无法拨打list()
【参考方案1】:
使用for...empty
,它基本上与Django 等效(将else
关键字替换为empty
)。
【讨论】:
正如 Andrew 所说(在对该问题的评论中),for..empty
是 OP 所要求的,但 for..else
在 Python 中的作用完全不同。
【参考方案2】:
我知道这是一篇很老的帖子。添加答案以供将来参考。没有明确的方法来实现for..else
,但我们可以执行以下操作。
% for x in some_list %
... awesome html and more here
% if forloop.last %
... executes only if this is the last time through the loop
% endif %
% endfor %
希望这会有所帮助。更多阅读here
【讨论】:
以上是关于Django 模板语言:使用带有 else 的 for 循环的主要内容,如果未能解决你的问题,请参考以下文章
Django 模板语言 - 带有 Javascript 索引的 Python 数组