2016-09-29 5 views
0

Я пытаюсь отфильтровать детей своим родителем в моих шаблонах. Например, у меня есть дома, которые отображаются и вы хотите показать свои удобства (дети) вместе с ними. Когда я пытаюсь сделать так, каждый дом перечисляет все удобства для каждого дома. Как я могу сделать так, чтобы я перечислил дом и только его удобства?Django filter child by parent

Вот мои модели:

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