如何在 Django 模板中引用列表中的最后一项? list.-1.key
Posted
技术标签:
【中文标题】如何在 Django 模板中引用列表中的最后一项? list.-1.key【英文标题】:How can reference the last item in a list in a Django template? list.-1.key 如何在 Django 模板中引用列表中的最后一项? list.-1.key 【发布时间】:2011-06-11 11:07:48 【问题描述】:如果我在未知长度的上下文中有一个变量,例如;list=['key':'A','key':'B','key':'C']
我怎样才能得到最后一个对象? list.0.key
适用于第一个,但 list.-1.key
给出;Could not parse the remainder: '-1.key' from 'list.-1.key'
【问题讨论】:
【参考方案1】:在你的模板中使用这段代码:
list|slice:":-1".items.0.0
【讨论】:
list|slice:":-1".key
=> Could not parse the remainder: '.key' from 'list|slice:":-1".key'
无法从 'list|slice:":-1".items.0.0' 解析余数:'.items.0.0'
slice
模板标签也不支持负索引。【参考方案2】:
使用last
模板标签:
value|last
如果 value 是列表
['a', 'b', 'c', 'd']
,则输出将是字符串"d"
。
【讨论】:
list|last.key
=> Could not parse the remainder: '.key' from 'list|last.key'
我花了半个小时寻找这个。谢谢!仅供参考,这似乎几乎是在 Python 2 中获取 xrange 对象的最后一个元素的唯一方法。make_list
和 slice
过滤器及其组合都因不同的原因而失败。
最新解决方案并兼容with
块上的多个分配【参考方案3】:
感谢大家的帮助,这让我意识到我可以使用with tag。
% with list|last as last %
last.key
% endwith %
【讨论】:
如果你想要最后一个元素以外的东西,也可以使用 slice:% with list|slice:":-2" as my_var %
错误:不支持负索引。 Django v.1.7【参考方案4】:
就我而言,我找到了这个解决方案:object_list.last.id
对这样的表达非常有用:% url 'my-url' object_list.first.id object_list.last.id %
【讨论】:
【参考方案5】:不带,将是:
% set last = list|last %
last.key
【讨论】:
【参考方案6】:您可以通过以下标签标记最后一个forloop
% if forloop.last % ... % endif %
并在标签内添加您的特殊愿望。
【讨论】:
虽然此代码 sn-p 可能是解决方案,但 including an explanation 有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案7】:它对我有用,只需使用内置函数 count() 计算 views.py 文件中的记录数,然后检查 forloop.counter != total_count 是否然后添加和
% if forloop.counter != total_jobs %
<hr>
% endif %
【讨论】:
您的代码看起来不像是一个问题的解决方案:“我怎样才能得到最后一个对象?”。请添加显示如何获取最后一个对象的代码。以上是关于如何在 Django 模板中引用列表中的最后一项? list.-1.key的主要内容,如果未能解决你的问题,请参考以下文章
Django模板 - 查找列表中的至少一项是不是出现在其他列表中