Django 按父项过滤子项

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

谢谢

我想你正在找这个

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