2017-07-08 44 views
0

我需要對我的對象進行排序以在我的模板中使用它。現在是這樣的:Django - order by

sites = Site.objects.all().order_by('-date', '-group')[:10] 

結果是,例如:

  1. 今天第2組
  2. 今天第2組
  3. 昨日組2
  4. 昨天組別1
  5. 三天前組2
  6. 4天前羣組2

我需要:今天

  1. 組2
  2. 昨日組2
  3. 三天前組2
  4. 四天前組2
  5. 今天組別1
  6. 昨天組別1

我只需要按組排列的10個最新網站。 我想在我的模板中使用它(組2中的兩個站點第一個,組8或組2中的第一個)。感謝您的任何建議。

回答

0

您應先訂購group,然後再訂購date。雖然有幾種方法可以做到這一點。

在車型級別,可以與元屬性ordering

在視圖級別達到這個目的,使用查詢sites = Site.objects.order_by('-group','-date')[:10]'

是的,則不需要此all()

在模板級別上,regroup模板標籤。你需要爲你的示例使用嵌套。

+0

我不能爲了先由組,因爲我需要10個最新的網站(兩個組)。 – jundymek

0

我是這麼做的。它的工作原理應該如此。

sites = Site.objects.order_by('-date').order_by('-group', '-date')[:10] 

這不是個好主意。下面是實現我的目標有道:

我的觀點:

sites = Site.objects.order_by('-date')[:10] 

我的模板:

{% for site in sites|dictsortreversed:"group_id" %}