Lihat ini . Kode Anda akan menjadi seperti berikut:
from django.db.models import Max
Argument.objects.aggregate(Max('rating'))
Anda juga dapat menggunakan ini di queryset yang ada:
from django.db.models import Max
args = Argument.objects.filter(name='foo')
args.aggregate(Max('rating'))
Jika Anda memerlukan contoh model yang berisi nilai maksimal ini, maka kode yang Anda posting mungkin adalah cara terbaik untuk melakukannya:
arg = args.order_by('-rating')[0]
Perhatikan bahwa ini akan error jika queryset kosong, yaitu jika tidak ada argumen yang cocok dengan query (karena [0]
bagian tersebut akan memunculkan IndexError
). Jika Anda ingin menghindari perilaku itu dan sebaliknya hanya kembali None
dalam kasus itu, gunakan .first()
:
arg = args.order_by('-rating').first()