20

我在数据库中有一个“新闻”标题列表,其中包含以下字段:ID、标题、日期。我想获取最新的十个(如果少于十个,则全部检索)。

就像是:

news = News.objects.order_by("date").first(10)
4

2 回答 2

44

这是你需要做的:

news = News.objects.order_by("-date")[:10]

这里发生了一些有趣的事情。

首先,要获得最新消息,您需要降序。(那是“-date”部分)[0]

第二部分是限制结果集[1]。这与 Python 列表 Slicing[2] 共享相同的接口,但它们是不同的东西。请仔细阅读。

[0] https://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by

[1] https://docs.djangoproject.com/en/dev/topics/db/queries/#limiting-querysets

[2] http://docs.python.org/2/tutorial/introduction.html

于 2012-11-16T18:59:41.203 回答
1

我的解决方案

返回的对象实际上是一个列表。通过使用 python 列表索引,我们可以获得任意数量的对象。下面添加的示例。

'productobj = product_master.objects.all()[0:20]`
于 2019-07-02T10:51:44.223 回答