如何在 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_listslice 过滤器及其组合都因不同的原因而失败。 最新解决方案并兼容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模板 - 查找列表中的至少一项是不是出现在其他列表中

Django告诉双重排序中具有特定属性的最后一项(order_by)

如何在django模板中读取传递过去的字典参数中的某一项?

如何绑定到列表中的最后一项?

Django 多对多字段过滤器列表

如何删除列表中的最后一项?