Veja isso . Seu código seria algo como o seguinte:
from django.db.models import Max
Argument.objects.aggregate(Max('rating'))
Você também pode usar isso em querysets existentes:
from django.db.models import Max
args = Argument.objects.filter(name='foo')
args.aggregate(Max('rating'))
Se você precisar da instância de modelo que contém esse valor máximo, o código postado é provavelmente a melhor maneira de fazer isso:
arg = args.order_by('-rating')[0]
Observe que isso irá falhar se o queryset estiver vazio, ou seja, se nenhum argumento corresponder à consulta (porque a [0]
parte levantará um IndexError
). Se você quiser evitar esse comportamento e simplesmente retornar None
nesse caso, use .first()
:
arg = args.order_by('-rating').first()