2016-09-29 59 views
0

我正在尝试通过其父项在我的模板中筛选子项。例如,我有房子显示,并希望与他们一起展示他们的设施(儿童)。当我尝试这样做时,每个房子列出每个房屋的所有设施。我将如何制作,以便列出房屋并仅列出其设施?Django按父项筛选子项

这里是我的模型:

class Home(models.Model): 
    name = models.CharField(max_length=255) 
    photo = models.ImageField() 

    def __str__(self): 
     return self.name 


class Amenities(models.Model): 
    home = models.ForeignKey(Home) 
    amenities = models.CharField(max_length=255) 

在我的看法,我想通过其父过滤孩子:

def index(request): 
    home = Home.objects.filter() 
    amenities = Amenities.objects.filter(home=home) 

    return render(request, 'home/home.html', {'home': home, 'amenities': amenities}) 

在我的模板,我试着和遍历每个家庭和他们的设施像这样:

{% for house in home %} 
    <div class="row"> 
     <div class="col-md-6 portfolio-item"> 
      <a href="house1.html"> 
       <img class="img-responsive" src=" media/{{ house.photo }}" alt=""> 
      </a> 
      <h3> 
       <a href="house1.html">House</a> 
      </h3> 
      <ul> 
       {% for i in amenities %} 
       <li>{{ i.amenities }}</li> 
       {% endfor %} 
      </ul> 
     </div> 
    </div> 
    {% endfor %} 

谢谢

+0

我认为你需要筛选到一个家。否则,你会抓住所有的房屋和他们的所有设施。 – Dan

回答

1

我认为你正在寻找这个

{% for house in home %} 
<div class="row"> 
    <div class="col-md-6 portfolio-item"> 
     <a href="house1.html"> 
      <img class="img-responsive" src=" media/{{ house.photo }}" alt=""> 
     </a> 
     <h3> 
      <a href="house1.html">House</a> 
     </h3> 
     <ul> 
      {% for i in house.amenities_set.all %} 
      <li>{{ i.amenities }}</li> 
      {% endfor %} 
     </ul> 
    </div> 
</div> 
{% endfor %} 
+0

工作。谢谢! – Ryan113