#django
#django
Вопрос:
У меня есть модель с другим ключом forginekey, и я хотел бы сгруппировать ее по ученикам. Я успешно сделал это, но в моем шаблоне я хочу вложить результат или перегруппировать его по предметам в соответствии с учащимися.
model.py
class Result(models.Model):
examtype = models.ForeignKey(ExamType, on_delete=models.CASCADE)
student = models.ForeignKey(Student, on_delete=models.CASCADE)
subject = models.ForeignKey(SubjectAppointment, on_delete=models.CASCADE)
test = models.FloatField()
exam = models.FloatField()
total = models.FloatField(blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def save(self, *args, **kwargs):
self.total = self.test self.exam
super().save(*args, **kwargs)
def __str__(self):
return self.student.matricnumber
def get_result_total(self):
return int(float(f'{self.test self.exam}'))
views.py
def ReportView(request):
template_name = 'teacher/report.html'
score = Result.objects.values('student', 'exam', 'test', 'subject__subject__name').annotate(student_totalscore=Sum('total')).annotate(attending=Count('subject'))
print(score)
context = {
'score': score,
}
return render(request, template_name, context)
report.html
{% for s in score %}
{% regroup score by s.student as student_list %}
{% for a in student_list %}
<!-- {% for b in a.list %} -->
<tr>
<td>{{ b.subject__subject__name }}</td>
<td>{{ b.test }}</td>
<td>{{ b.exam }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- {% endfor %} -->
{% endfor %}
{% endfor %}
Комментарии:
1. Не могли бы вы перефразировать свой вопрос? Чего вы хотите достичь? У вас что-то не работает? Что такое
{% regroup score by s.student as student_list %}
?2. Я хочу выбрать ученика в соответствии с предметом, который он или она сделал в модели результатов. Чтобы дать мне окончательный отчет для студентов
3. Что вы подразумеваете под «перегруппировкой»? Можете ли вы привести больше примеров?