Vì vậy, tôi có một ứng dụng Django xử lý kết quả kiểm tra và tôi đang cố gắng tìm điểm số trung bình cho một đánh giá nhất định. Tôi nghĩ rằng điều này sẽ hoạt động:Bộ lọc Django QuerySet + order_by + limit
e = Exam.objects.all()
total = e.count()
median = int(round(total/2))
median_exam = Exam.objects.filter(assessment=assessment.id).order_by('score')[median:1]
median_score = median_exam.score
Nhưng nó luôn trả về một danh sách trống. Tôi có thể nhận được kết quả tôi muốn với điều này:
e = Exam.objects.all()
total = e.count()
median = int(round(total/2))
exams = Exam.objects.filter(assessment=assessment.id).order_by('score')
median_score = median_exam[median].score
Tôi chỉ muốn không phải truy vấn toàn bộ các bài kiểm tra. Tôi đã nghĩ về việc chỉ cần viết một truy vấn MySQL thô trông như sau:
SELECT score FROM assess_exam WHERE assessment_id = 5 ORDER BY score LIMIT 690,1
Nhưng nếu có thể, tôi muốn ở trong ORM của Django. Chủ yếu, nó chỉ làm phiền tôi rằng tôi dường như không thể sử dụng order_by với một bộ lọc và một giới hạn. Ý tưởng nào?
Cảm ơn, tôi đã nhận được cú pháp slice được trộn lẫn với cú pháp giới hạn MySQL – bjudson