Имеется база студентов и их оценки по разным предметам, нужно вывести список студентов отсортированный по возрастанию средней оценки:
class Student(models.Model): class Meta(): db_table="student" student_name = models.CharField(max_length = 30) class Rating(models.Model): class Meta(): db_table="rating" rating_lesson = models.IntegerField() rating_student = models.ForeignKey(Student)
Код на SQL выглядел бы так:
SELECT student_name, (AVG(rating_lesson)) AS rating FROM student INNER JOIN rating ON rating.rating_student_id=student.id GROUP BY student.id ORDER BY rating DESC
Пробовал так:
return render_to_response('site.html', {'student' : Student.objects.all().filter(rating__rating_student_id=Student.objects.all()).annotate(total=Count('id')).order_by('-rating__rating_lesson')})
Но тогда не выводится средняя оценка и не знаю как её вывести на экран в site.html:
{% for name in student %}
<tr>
<td>{{ name.student_name }}</td>
<td>тут должна быть средняя оценка</td>
</tr>
{% endfor %}