只获取模板中的3个第一个元素

时间:2013-10-14 10:11:06

标签: django django-templates

{% for message in lab.email_sent_history.all %}

这会获取所有消息。我知道有可能只得到这样的前三个:

{% for message in lab.email_sent_history.all|slice:":3" %}

但我认为这不是一个好主意,因为它首先获取所有消息,然后只保留三个消息。我怎么才能先获得三个?从优化视图来看哪个更好。

1 个答案:

答案 0 :(得分:0)

  

但我不认为这是一个好主意,因为它首先获取所有消息,然后只保留三个消息。

不完全。

切片查询集会在SQL查询中添加LIMIT子句,这会导致数据库限制返回的记录数。无需进一步优化模板。