【发布时间】:2010-12-26 07:03:02
【问题描述】:
感谢另一个问题的非常有用的提示,我了解到我可以通过在模板中切片来限制列表中值的数量:
{% for comment in thread.comment_set.all|slice:":3" %}
现在我想获得我的 cmets 的最后 3 个结果,所以我想一个简单的 ":-3" 或 "-3" 就可以了,唉:
Caught an exception while rendering: Negative indexing is not supported.
同时使用:
{% for comment in thread.comment_set.all|slice:":3" reversed %}
没有效果,因为如果我有 5 个 cmets,而不是 1、2、3,它会按 3、2、1 的顺序显示前三个。
有什么方法可以在不进入我的数据库的情况下显示帖子的最后 3 个 cmets?我希望能够完全使用模板系统来做到这一点。
解决方案
{% for comment in thread.comment_set.all|dictsortreversed:"created"|slice:"3" %}
由于我的表具有创建的时间戳,因此显示最后三个。
【问题讨论】:
-
如果您希望项目按时间顺序(而不是逆时间顺序)显示:
{% for comment in thread.comment_set.all|dictsortreversed:"created"|slice:"3" reversed %}
标签: python django django-templates