Python Django,求两个字段之和的最大值

Python Django,求两个字段之和的最大值,python,django,Python,Django,我有一个像这样的Django模型: class MyModel(models.Model): fieldA = models.CharField(max_length=100) fieldB = models.IntegerField() fieldC = models.IntegerField() 我想找到最大值(fieldB+fieldC)。有没有Django的方法可以做到这一点?或者我必须使用原始sql(以防类似于“从mymodel_表中选择Max(fieldA+fieldB

我有一个像这样的Django模型:

class MyModel(models.Model):
  fieldA = models.CharField(max_length=100)
  fieldB = models.IntegerField()
  fieldC = models.IntegerField()
我想找到最大值(fieldB+fieldC)。有没有Django的方法可以做到这一点?或者我必须使用原始sql(以防类似于“从mymodel_表中选择Max(fieldA+fieldB”)


提前感谢

这里有一个相当迂回的解决方案,它应该可以工作,改编自:


原始非工作答案(从Django 1.4开始,F()表达式在注释中不起作用)

您可以使用和为您执行此操作。我想你想要的是

from django.db.models import F, Max
MyModel.objects.annotate(sum=F('fieldB') + F('fieldC')).aggregate(Max('sum'))

*原始sql是从mymodel_表中选择Max(fieldB+fieldC)。我尝试了您的建议,但它给了我一个AttributeError-“ExpressionNode”对象没有属性“lookup”您是对的。试试这个解决方案。让我知道这是否有效,我会更新答案。
from django.db.models import F, Max
MyModel.objects.annotate(sum=F('fieldB') + F('fieldC')).aggregate(Max('sum'))