ดูนี้ รหัสของคุณจะเป็นดังนี้:
from django.db.models import Max
Argument.objects.aggregate(Max('rating'))
คุณยังสามารถใช้สิ่งนี้กับชุดแบบสอบถามที่มีอยู่:
from django.db.models import Max
args = Argument.objects.filter(name='foo')
args.aggregate(Max('rating'))
หากคุณต้องการโมเดลอินสแตนซ์ที่มีค่าสูงสุดนี้รหัสที่คุณโพสต์น่าจะเป็นวิธีที่ดีที่สุด:
arg = args.order_by('-rating')[0]
โปรดทราบว่าสิ่งนี้จะเกิดข้อผิดพลาดหากชุดแบบสอบถามว่างเปล่ากล่าวคือหากไม่มีอาร์กิวเมนต์ที่ตรงกับข้อความค้นหา (เนื่องจาก[0]
ส่วนจะเพิ่มค่าIndexError
) หากคุณต้องการหลีกเลี่ยงพฤติกรรมนั้นและกลับไปใช้None
ในกรณีนั้นแทนให้ใช้.first()
:
arg = args.order_by('-rating').first()