我创建了包含少数学生的对象。当我迭代我的原始学生对象student_list
时,我试图让每个学生从另一个模型中提取他的数据。我没有发布我制作的视图,因为我知道该对象工作正常。
我有以下型号:
class StudentDetail(Base):
student = models.OneToOneField('Usr', limit_choices_to={'user_type': 'Student'})
klass = models.ForeignKey('Klass', related_name='kara_pore')
class Usr(AbstractUser, Base):
type_choices = (
('Student', 'Student'),
('Teacher', 'Teacher'),
)
user_type = models.CharField(max_length=10,
choices=type_choices,
default='Student')
class Score(Base):
student = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Student'}, related_name='scored')
subject = models.ForeignKey(Subject)
teacher = models.ForeignKey(Usr, limit_choices_to={'user_type': 'Teacher'}, related_name='marked')
exam = models.CharField(max_length=50)
exam_date = models.DateField()
score = models.IntegerField()
out_of = models.IntegerField()
模板文件:
{% for student in student_list %}
<tr>
<td> <a href=#>{{ student }}</a> </td>
<td> {{ student.student.scored.score }} </td> <-- this line doesn't work.
<td></td>
</tr>
{% endfor %}
student_list
对象有效,我可以轻松地遍历它。我正在使用该对象来过滤Score类中的数据。我之前从未使用过Zip。而且我不知道这是否是使用它的理想情况。据我所知,使用点跳过类应该可以工作并获得我需要的价值。我一定是在做错事。模板呈现,但不显示分数。
注意:这是我的观点。
def View(request, pk):
this_klass = Klass.objects.get(id=pk)
student_list = this_klass.kara_pore.all()
return render(request, "grades/view.html", {'this_klass': this_klass, 'student_list': student_list})
答案 0 :(得分:0)
以下解决了这个问题:
{% for student in student_list %}
{% for score in student.student.scored.all %}
<tr>
<td> <a href=#>{{ student }}</a> </td>
<td> {{ score.score }} </td>
<td></td>
</tr>
{% endfor %}
{% endfor %}