如何在Django模板中引用列表中的最后一项?{{list.-1.key}

如何在Django模板中引用列表中的最后一项?{{list.-1.key},django,django-templates,Django,Django Templates,例如,如果在未知长度的上下文中有一个变量 list=[{'key':'A'},{'key':'B'},{'key':'C'}] 我怎样才能得到最后一个物体{{list.0.key}}适用于第一个,但是{{{list.-1.key}}给出了 无法分析剩余部分:“-1.key”来自“list.-1.key”在模板中使用以下代码: {{ list|slice:":-1".items.0.0 }} 使用模板标记: {{ value|last }} 如果值是列表['a','b','c','d'],则输

例如,如果在未知长度的上下文中有一个变量
list=[{'key':'A'},{'key':'B'},{'key':'C'}]

我怎样才能得到最后一个物体
{{list.0.key}}
适用于第一个,但是
{{{list.-1.key}}
给出了

无法分析剩余部分:“-1.key”来自“list.-1.key”

在模板中使用以下代码:

{{ list|slice:":-1".items.0.0 }}
使用模板标记:

{{ value|last }}
如果值是列表
['a','b','c','d']
,则输出将是字符串
“d”


谢谢大家的帮助,这让我意识到我可以使用


在我的例子中,我找到了这个解决方案:
{{object\u list.last.id}
对于这样的表达式非常有用:
{%url'my url'object\u list.first.id object\u list.last.id%}

如果没有with,则将是:

{% set last = list|last %}
{{ last.key }}

您可以使用以下标记标记最后一个forloop

{% if forloop.last %} ... {% endif %}

并在标记中添加您的特殊需求。

它只需使用内置函数count()计算views.py文件中的记录数,然后检查forloop.counter!=总计数,然后加上

{% if forloop.counter != total_jobs %}
    <hr>
{% endif %}
{%if-forloop.counter!=total_jobs%}

{%endif%}
{list | slice::-1.key}
=>code>无法解析剩余部分:'.key'来自'list | slice::-1.key'无法解析剩余部分:'.items.0'来自'list | slice::-1.items.0'
slice
模板标记也不支持负索引。
{list{last.key}
=>
无法解析剩余部分:“.key”来自“list | last.key”
我花了半个小时寻找这个。谢谢仅供参考,这似乎是在Python 2中获取xrange对象的最后一个元素的唯一方法
make_list
slice
过滤器及其组合由于不同的原因都会失败。大多数更新的解决方案以及与
with
块上的多个分配兼容的解决方案,如果您想要的不是最后一个元素:
{%with list | slice::-2“作为我的变量%}
错误:不支持负索引。Django v.1.7虽然这段代码可能是解决方案,但有助于提高文章的质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因。您的代码看起来不像是“如何获取最后一个对象?”问题的解决方案。请添加显示如何获取最后一个对象的代码。
{% if forloop.counter != total_jobs %}
    <hr>
{% endif %}