Django:如何限制从模型返回的对象数量

时间:2012-11-16 18:55:47

标签: python django

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

类似的东西:

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

2 个答案:

答案 0 :(得分:21)

这是你需要做的:

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

这里有一些有趣的事情。

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

第二部分是限制结果集[1]。它与Python列出切片[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

答案 1 :(得分:0)

我的解决方案

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

'productobj = product_master.objects.all()[0:20]`