2015-04-20 119 views
2

我有以下給出的模型。Django group by to find count

class Page(models.Model): 
    name = models.CharField(max_length=150) 
    city = models.CharField(max_length=50) 
    country = models.ForeignKey(Country) 

class Country(models.Model): 
    name = models.CharField(max_length=150) 

我所需要的只是獲得每個國家的頁數。即,

{國家1:3,COUNTRY2:4}

(國傢俱體頁數)

是否有可能獲得基於該國的外國鍵頁面的計數如圖所示?

回答

2

您可以用數註釋:

pages = Page.objects.annotate(num_countries=Count('country')) 
pages[0].num_countries # 3 
pages[1].num_countries # 4 

plenty of details and examples有關此內容的聚合API文檔。