2016-09-29 58 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