2
最大考慮一個簡單的模型:在Django的ORM,得到記錄,其字段值是一個QuerySet
class Person(models.Model):
name = models.CharField(max_length=256)
age = models.IntegerField()
我想一個表達式返回所有Person
對象,其年齡的QuerySet
是最大的桌子。即假設有20 Person
記錄,最大年齡爲70
,但有3個不同記錄具有該值。我希望我的查詢集恰好包含那些3 Person
對象。
我想我可以做的:
Person.objects.filter(age=Person.objects.aggregate(models.Max('age'))['age__max'])
但哇,這似乎是一個真正的混亂。它擊中數據庫兩次。呸。
更好的選擇?