2012-11-16 35 views
4

我有一個數據庫中的「新聞」標題列表,其中包含以下字段:標識,標題,日期。我想得到最新的十個(或者如果少於十個,就檢索它們)。Django:如何限制從模型返回的對象數

喜歡的東西:

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

退房:https://docs.djangoproject.com/en/dev/topics/db/queries/ #限制查詢集 –

+0

@JonClements謝謝。你知道它是否適用於'get_or_404()'? –

+0

我不會這麼認爲 - 「最多10個」不包含任何結果,因此您必須檢查是否屬於這種情況,並且手動執行404 –

回答

14

這就是你需要做什麼:

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

有去的​​一對夫婦有趣的事情在這裏。

首先,要獲得最新消息,您需要降序排列。 (這是「日期」部分)[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

+0

這是否也適用於get_or_404()? –

+0

編號objects.get/get_or_404是隻得到1個實例。 – santiagobasulto

+0

哦,對了,我忘了。謝謝。 –

相關問題