2012-11-27 101 views
0

例如,假設我有一個名爲「ClassRoom」的模型和一個名爲「Student」的模型,並且Student與ClassRoom具有外鍵關係。如何查找具有最高數量的屬性的對象

Class Student(models.Model): 
    classroom = models.ForeignKey(ClassRoom, related_name='student') 

我怎樣才能找到哪個課堂的學生最多與一個基本的Django查詢。我做了什麼來找到答案似乎應該會更容易。

max = 0  
for c in ClassRoom.objects.all(): 
     if c.student.count() > max: 
      print 'ID: %s' % c.id 
      max = c.student.count() 

然後我會打印最後一個ID並在課室ID上執行.get()查詢。無論如何,要做到這一點與註釋或聚合也許?

+0

你可以發佈你的模型定義嗎? – dm03514

回答

0

嘗試增加這樣的事情你ClassRoom對象:

def num_students(self): 
    return Students.objects.filter(classroom=self).count() 

顯然,不管你把它叫做更換classroom。那麼你應該可以使用__max查詢。

聲明:我沒有試過這個,但它在我的腦海裏:)

相關問題