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'])
但哇,这似乎是一个真正的混乱。它击中数据库两次。呸。
更好的选择?