Я создал и объект, который содержит несколько учеников. Я пытаюсь использовать каждого ученика, чтобы вытащить его данные из другой модели, поскольку я перебираю свой объект-ученик, известный как student_list
. Я не опубликовал представление, которое я сделал, потому что я знаю, что объект работает нормально.Использование Django ORM в шаблоне
У меня есть следующие модели:
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 %}
The 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})
Вы * сделать * нужно показать свою точку зрения. Как вы уверены, что он работает нормально? Ваше представление отвечает за передачу этих данных в ваш шаблон. – rnevius
Я выполнил итерацию через свой объект 'student_list', и он отлично работает. Я не могу отобразить вторую ячейку в моей таблице. Но все же я покажу свое мнение, если это поможет. @rnevius – MiniGunnR
Я добавил представление. Возможно, это поможет @rnevius – MiniGunnR