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

这将获取所有消息。我知道只能像这样获得前三个:

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

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

4

1 回答 1

0

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

不完全的。

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

于 2013-10-14T10:12:48.233 回答