Xem này . Mã của bạn sẽ giống như sau:
from django.db.models import Max
Argument.objects.aggregate(Max('rating'))
Bạn cũng có thể sử dụng điều này trên các tập truy vấn hiện có:
from django.db.models import Max
args = Argument.objects.filter(name='foo')
args.aggregate(Max('rating'))
Nếu bạn cần phiên bản mô hình có chứa giá trị tối đa này, thì mã bạn đã đăng có lẽ là cách tốt nhất để làm điều đó:
arg = args.order_by('-rating')[0]
Lưu ý rằng điều này sẽ xảy ra lỗi nếu bộ truy vấn trống, tức là nếu không có đối số nào phù hợp với truy vấn (vì [0]phần này sẽ nâng cao một IndexError). Nếu bạn muốn tránh hành vi đó và thay vào đó chỉ cần quay lại Nonetrong trường hợp đó, hãy sử dụng .first():
arg = args.order_by('-rating').first()