Django正在获取与对象相关的记录列表(带有FK)-未正确呈现模板
我试图在这里遵循前面的问题:Django正在获取与对象相关的记录列表(带有FK)-未正确呈现模板,django,Django,我试图在这里遵循前面的问题: 但似乎无法让它发挥作用 我有主人的名单,但没有宠物的名字。html代码似乎没有执行第二个FOR循环。有什么想法吗 型号.py class Teacher(models.Model): teacher = models.CharField(max_length=300, verbose_name="teacher") def __unicode__(self): return self.teacher clas
但似乎无法让它发挥作用 我有主人的名单,但没有宠物的名字。html代码似乎没有执行第二个FOR循环。有什么想法吗 型号.py
class Teacher(models.Model):
teacher = models.CharField(max_length=300, verbose_name="teacher")
def __unicode__(self):
return self.teacher
class Owner(models.Model):
relevantteacher = models.ForeignKey(Teacher, verbose_name="teacher")
owner = models.CharField(max_length=300, verbose_name="owner")
def __unicode__(self):
return self.owner
class PetName(models.Model):
relevantowner = models.ForeignKey(Owner, verbose_name="owner")
pet_name = models.CharField(max_length=50, verbose_name="pet Name")
def __unicode__(self):
return self.pet_name
def ownersandteachers(request):
owners = Owner.objects.all()
context = {'owners': owners}
return render(request, 'ownersandpets.html', context)
视图.py
class Teacher(models.Model):
teacher = models.CharField(max_length=300, verbose_name="teacher")
def __unicode__(self):
return self.teacher
class Owner(models.Model):
relevantteacher = models.ForeignKey(Teacher, verbose_name="teacher")
owner = models.CharField(max_length=300, verbose_name="owner")
def __unicode__(self):
return self.owner
class PetName(models.Model):
relevantowner = models.ForeignKey(Owner, verbose_name="owner")
pet_name = models.CharField(max_length=50, verbose_name="pet Name")
def __unicode__(self):
return self.pet_name
def ownersandteachers(request):
owners = Owner.objects.all()
context = {'owners': owners}
return render(request, 'ownersandpets.html', context)
模板
{% for i in owners %}
{{ i.owner }} has pets:<br />
{% for v in owners.petname_set.all %} //this doesn't seem to be executing
- {{ v.pet_name }}<br />
{% endfor %}
{% endfor %}
{%for i in owners%}
{{i.owner}}有宠物:
{%for v in owners.petname_set.all%}//这似乎没有执行
-{{v.pet_name}}
{%endfor%}
{%endfor%}
您正在做什么
{% for v in owners.petname_set.all %}
你应该去哪里
{% for v in i.petname_set.all %}
owners
是查询集,但您需要为查询集中的单个对象获取petname\u集
,在本例中,该对象为i
另外,如果I.petname\u set
存在,我建议进行条件检查。如果没有,则不要显示有宠物:
文本
{% for i in owners %}
{{ i.owner }}
{% if i.petname_set.count %} has pets:<br />
{% for v in i.petname_set.all %} //this doesn't seem to be executing
- {{ v.pet_name }}<br />
{% endfor %}
{% endif %}
{% endfor %}
{%for i in owners%}
{{i.owner}}
{%if i.petname_set.count%}有宠物:
{%for v in i.petname_set.all%}//这似乎没有执行
-{{v.pet_name}}
{%endfor%}
{%endif%}
{%endfor%}