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ć None
w takim przypadku, użyj .first()
:
arg = args.order_by('-rating').first()