只过滤Django mod中的n个元素

2024-10-06 15:22:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个简单的问题,我想过滤两个按日期倒序排列的元素。在

模型是:

Class ModelName(models.Model):
    usr = models.ForeignKey(UserProfile)
    created = models.DateTimeField(default=datetime.datetime.now)

我的方法是:

^{pr2}$

据我所知,我认为幕后发生的事情是:

  1. 将过滤ModelName中的所有对象

  2. 它们被排序

  3. 其中只有两个被选中。

也许我错了,如果不是的话,我怎么才能根据日期过滤最后两个元素呢。在


Tags: 模型default元素datetimemodelmodelsusrnow
1条回答
网友
1楼 · 发布于 2024-10-06 15:22:13
  • All the objects from ModelName are filtered
  • they are sorted
  • only two of them are selected.

是的,但这是由数据库完成的,而不是由python完成的。见querysets are lazy。因此,这实际上非常有效,因为所有这些python:

qs = ModelName.object.filter(param=param).order_by('-created')[:2]

将在访问qs记录时转换为SQL(例如,对于qs中的模型…)

相关问题 更多 >