Django, encuentra el máximo de la sum de 2 campos.

Tengo un modelo de Django modelo como este:

class MyModel(models.Model): fieldA = models.CharField(max_length=100) fieldB = models.IntegerField() fieldC = models.IntegerField() 

Quiero encontrar el máximo (fieldB + fieldC). ¿Hay una manera Django de hacer esto? ¿O tengo que ir con el sql sin procesar (en caso de que sea algo como “Seleccionar Max (fieldA + fieldB) From mymodel_table”)?

Gracias por adelantado

Aquí hay una solución bastante indirecta que debería funcionar, adaptada de las consultas agregadas de Django con expresiones :

 MyModel.objects.extra(select={'sum':'fieldB + fieldC'}).order_by('-sum')[0] 

Respuesta original que no funciona (a partir de las expresiones Django 1.4, F () no funcionan en las anotaciones)

Puede usar expresiones F () y anotación / agregación para hacer esto por usted. Creo que lo que quieres es.

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