首页 > 解决方案 > 谁能帮助/告诉我我做错了什么?和/或我应该在查询中做什么?

问题描述

我有 3 个模型正在使用我的查询:

模型.py

class Student(models.Model):
   ...

class SchoolPeriod(models.Model):
   period = models.CharField(max_length = 100)

class StudentGrade(models.Model):
   student = models.ForeignKey(Student, on_delete=models.CASCADE,)
   period = models.ForeignKey(SchoolPeriod, ...)
   subjects = models.ForeignKey(Subject, on_delete=models.CASCADE)
   grade = models.DecimalField(default = 75.00, max_digits=4, decimal_places=2)

class YearLevel(models.Model):
   year_level = models.CharField(...)
   school_level = models.CharField(...)

class Section(models.Model):
   year_level = models.OneToOneField(YearLevel, on_delete=models.SET_NULL, null = True)
   section = models.CharField(max_length = 100)
   adviser = models.ForeignKey(Teacher, on_delete = models.SET_NULL, null = True, blank = True)

class Subject(models.Model):
   subject_name = models.CharField(max_length = 100)

视图.py

def viewgrade(request):
   current_parent = request.user.parent                              #gets current logged in parent
   tempstudent = Student.objects.get(parent = current_parent )       #gets student related to parent(theres no student user level)
   studentgrade = StudentGrade.objects.filter(student = tempstudent) #filters the grades of the student related to the parent logged in
   ...

   context = {
       ...
       'studentgrade': studentgrade,
   }
   return render(request, 'Information/viewgrade.html', context)

viewgrade.html(模板)

<table style="width:50%">
 <tr>
    <th>Subject</th>
    <th>Grade</th>
 </tr>
 {% for studentgrade in studentgrade %}
 <tr>
    <td>{{ studentgrade.subjects }}</td>
    <td>{{ studentgrade.grade }}</td>
 </tr>
 {% endfor %}
 </table>

我可以做的是在我的模板上打印与当前登录的家长相关的学生的成绩。

但是,我也想按评分期(季度)安排

例子:

**first grading**
Science = 99
Math = 99

**second grading**
Science = 70
Match = 70

谢谢您的帮助!

标签: python-3.xdjangodjango-modelsdjango-viewsdjango-templates

解决方案


推荐阅读