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%}