Django 一个表行中有两个forloop

Django 一个表行中有两个forloop,django,Django,如何使其在表行中正确格式化,就像下面所示的示例中的一样。请帮帮我 teacher = SubjectSectionTeacher.objects.filter(Education_Levels__in=studentenroll.values_list('Education_Levels')) roomsched = SubjectRoomSchedule.objects.filter(Subject_Section_Teacher__in=teacher) return rende

如何使其在表行中正确格式化,就像下面所示的示例中的一样。请帮帮我

teacher = SubjectSectionTeacher.objects.filter(Education_Levels__in=studentenroll.values_list('Education_Levels'))
      roomsched = SubjectRoomSchedule.objects.filter(Subject_Section_Teacher__in=teacher)
return render(request, 'Homepage/enrollmentrecords.html',{,"teacher":teacher,"roomsched":roomsched})
这是我的模型

Subject            Teacher                Room
math             teachername             room512
添加意味着您将无法使用与模型的反向关系,这肯定不是您想要的

如果删除模型中所有与
相关的\u name='+'
,则填充模板会变得更容易:

views.py:

class SubjectRoomSchedule(models.Model):
    Subject_Section_Teacher = models.ForeignKey(SubjectSectionTeacher, related_name='+', on_delete=models.CASCADE,null=True)
    Classroom =models.ForeignKey(Room, related_name='+', on_delete=models.CASCADE,null=True)

class SubjectSectionTeacher(models.Model):
    School_Year = models.ForeignKey(SchoolYear, related_name='+', on_delete=models.CASCADE,null=True)
    Education_Levels = models.ForeignKey(EducationLevel, related_name='+', on_delete=models.CASCADE,blank=True)
    Courses= models.ForeignKey(Course, related_name='+', on_delete=models.CASCADE,null=True,blank=True)
    Sections= models.ForeignKey(Section, related_name='+', on_delete=models.CASCADE,null=True)
    Subjects= models.ForeignKey(Subject, related_name='+', on_delete=models.CASCADE,null=True)
    Employee_Users= models.ForeignKey(EmployeeUser, related_name='+', on_delete=models.CASCADE,null=True)
现在在模板中:

teachers = SubjectSectionTeacher.objects.filter(
                Education_Levels__in=studentenroll.values_list('Education_Levels')
           )
context = {"teachers":teachers}
return render(request, 'Homepage/enrollmentrecords.html', context)

35
{教师百分比中的教师百分比}
{{教师.科目}
{{teacher.Employee_Users}}
{teacher.Subject\u Section\u teacher\u set.all%中的房间百分比}
{{room.school}-{{room.Day{u Name}}
{%endfor%}
{%endfor%}

有关为什么for循环一开始不工作的解释,请参阅。

标记中的几个问题:

  • th
    元素的数量必须与列的数量相同(与
    td
    的数量相同)
  • 表格标题(th元素)当然在循环之外-标题只显示一次
  • 您必须在行上循环,因此
    tr
    及其所有子元素都在循环中,其余元素必须在循环之外
  • 您不应该通过内部循环将单元格动态添加到行中,因为行中可能包含不同数量的列计数,因此我更改了代码,将房间附加到逗号分隔的列表中

主题
老师
房间
{sensie在教师%%中的百分比]
{{sensie.Subjects}}
{{sensie.Employee_Users}}
{roomsched%中的房间为%s}
{{room.school}-{room.Day{u Name}{%if not forloop.last%},{%endif%}
{%endfor%}
{%endfor%}

你不应该把房间和老师分开取。您应该能够直接从
sensie
遍历您的关系。但是你没有展示你的模型,所以很难说你的
sensie
与房间有什么关系。请阅读如何在Django文档中从多对一和多对多关系中获取对象,嗨,对不起,简短的信息,我已经更新了我的问题。你能给我看看你的解决方案吗?因为我听不懂你说的话,我是django和web开发的新手,所以一个
主题部分教师可以有多个
主题教室时间表(即多个
教室
),你想显示哪一个?都是吗?在您的示例中只有一个房间。为什么在每个
ForeignKey
s中都有
related\u name='+'
呢?我遵循教程,这就是related\u name='+'的原因。。无论如何,我认为我唯一的错误不是查看,而是我的模板,我的格式forloop@marvin更改模型后是否运行了
python3 manage.py makemigrations
python3 manage.py migrate
?如果您希望更改模型,则每次更改模型时都必须运行此命令。sir@Caleb,我已经运行了makemigrations和migrate,但什么都没有发生我已经删除了模型中的所有“related_name='+'”,按照你的指示去做。@CalebGoodman,我完全支持你的建议-你刚才在回答关于如何修复标记中的循环的问题时复制了完全损坏的模板标记。@Risadinha,谢谢你,我没听清楚,我已经修复了它(我想)。我一开始并没有完全理解这个问题,所以我没有考虑html.Room5-monday,room1-周二,room1-monday我从Room5-monday,room1-monday,room1-monday收到了这封信,每位老师都收到了,所以你的表格现在显示正确了-这是否回答了你原来的问题?如果之后出现了新问题,你应该试着自己解决,或者在这个基础上创建一个新问题。
teachers = SubjectSectionTeacher.objects.filter(
                Education_Levels__in=studentenroll.values_list('Education_Levels')
           )
context = {"teachers":teachers}
return render(request, 'Homepage/enrollmentrecords.html', context)
<table>
<th id="703183278R34" style="height: 19px;" class="row-headers-background">
<div class="row-header-wrapper" style="line-height: 19px;">35</div>
</th>
{% for teacher in teachers %}

<tr style="height:19px;"> 
<td class="s46"></td>
<td class="s51" colspan="3">{{teacher.Subjects}}</td>
<td class="s51" colspan="4">{{teacher.Employee_Users}}</td>
<td class="s51" colspan="6">
  {% for room in teacher.Subject_Section_Teacher_set.all %}
  {{room.Classroom}}-{{room.Day_Name}}
  {% endfor %}
</td>
</tr>
{% endfor %}

</table>
    <table>
      <tr>
        <th></th>
        <th>Subject</th>
        <th>Teacher</th>
        <th>Rooms</th>
      </tr>
    {% for sensie in teacher %}
      <tr style='height:19px;'>        
        <td class="s46"></td>
        <td class="s51" colspan="3">{{sensie.Subjects}}</td>
        <td class="s51" colspan="4">{{sensie.Employee_Users}}</td>
        <td class="s51" colspan="6">
        {% for room in roomsched %}
            {{room.Classroom}}-{{room.Day_Name}}{% if not forloop.last %},{% endif %}
        {% endfor %}
        </td>
      </tr>
    {% endfor %}
    </table>