Zobacz to . Twój kod wyglądałby mniej więcej tak:
from django.db.models import Max
Argument.objects.aggregate(Max('rating'))
Możesz również użyć tego w istniejących zestawach zapytań:
from django.db.models import Max
args = Argument.objects.filter(name='foo')
args.aggregate(Max('rating'))
Jeśli potrzebujesz instancji modelu, która zawiera tę maksymalną wartość, prawdopodobnie najlepszym sposobem na to jest opublikowany kod:
arg = args.order_by('-rating')[0]
Zauważ, że spowoduje to błąd, jeśli zestaw zapytań jest pusty, tj. Jeśli żaden argument nie pasuje do zapytania (ponieważ [0]część podniesie IndexError). Jeśli chcesz uniknąć tego zachowania i zamiast tego po prostu wrócić Nonew takim przypadku, użyj .first():
arg = args.order_by('-rating').first()