有两个模型;每个学生可以有多个兴趣爱好,并且使用模板,我可以使第一个模型的for循环很好,但是我无法在模板中为第二个模型建立嵌套循环。 我试图在views.py文件中编写for循环,但是它只返回前n个?我不知道为什么 (我想在模板中显示每个学生列表,并在每个学生内部显示与该学生编号相关的兴趣爱好的另一个列表) models.py:
class student(models.Model):
studentNumber = models.AutoField(primary_key=True)
studentName = models.CharField()
class hobbies(models.Model):
studentNumber =
models.ForeignKey(student,on_delete=models.CASCADE,blank=True,null=True)
hobby = models.CharField()
views.py:
def hobbyList(request):
b = student.objects.all()
c = hobbies.objects.(filter=studentNumber=n) ## here is the problem the n
return render(request,'student/hobby.html',{'b':b,'c':c})
模板文件:
<ul>
{% for n in b %}
<li>{{ n.studentNumber }}
<ul>
{% for s in c %}
<li>{{ s.hobby }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
答案 0 :(得分:0)
在对Django文档进行了一些最终研究之后,我通过在模板中使用REGROUP过滤器找到了答案。 有关详细信息:这是链接表Django doc regroup filter