如何在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 %}