Django python: как отобразить несколько товаров из одной категории под одним названием категории в html-шаблоне

я новичок в python django. вот мой код.

views.py

def gerechten(request):
    template = loader.get_template('café/gerechten.html')
    mydata = gerecht_info.objects.all()
    mydata2 = gerechten_Categorie.objects.all()

    context = {
        'mygerecht': mydata,
        'mycategories': mydata2
    }   
    return HttpResponse(template.render(context, request))

и models.py

class gerechten_Categorie(models.Model):
    categorie = models.CharField(max_length=200)
    def __str__(self):
        return self.categorie

class gerecht_info(models.Model):
    categorie = models.ForeignKey(gerechten_Categorie, on_delete=models.CASCADE)
    gerecht_name = models.CharField(max_length=200)
    gerecht_description = models.CharField(max_length=500, blank=True, null=True)
    gerecht_price = models.CharField(max_length=50)
    def __str__(self):
        return self.gerecht_name
    def drinkdesc(self):
        return self.gerecht_description
    def drinkprice(self):
        return self.gerecht_price

and dishes.html

        {% if mygerecht %}
        {% for cat in mygerecht %}
        <div class="flex">
            <div class="menu-head center">
                <h2>{{cat.categorie}}</h2>
            </div>
            <div class="menu-item">
                <ul class="price">
                    <li>{{cat.gerecht_name}}</li>
                    <li>€{{cat.gerecht_price}}</li>
                </ul>
                {% if cat.gerecht_description %}
                <p>{{cat.gerecht_description}}</p>
                {% else %}
                <p></p>
                {% endif %}
            </div>
        </div>
        {% endfor %}
        {% else %}
        <div class="menu-head center">
        <h2>no items avaible</h2>
        </div>
        {% endif %}

Теперь мой сайт выглядит следующим образом: изображение моего сайта

https://i.stack.imgur.com/lrhhs.png

но я хочу, чтобы вся информация из 'Hapjes' была в одной категории 'Hapjes', а не разделена. Спасибо, что уделили время для ответа.

добрые пожелания

subjoel

Думаю, то, чего вы пытаетесь достичь, можно сделать с помощью тега шаблона regroup..

{% regroup mygerecht by categorie as article_categories %}
{% for categorie in article_categories %}
<div class="flex">
    <div class="menu-head center">
        <h2>{{categorie.grouper}}</h2>
    </div>
    {% for article in categorie.list %}
    <div class="menu-item">
        <ul class="price">
            <li>{{article.gerecht_name}}</li>
            <li>€{{article.gerecht_price}}</li>
        </ul>
        <p>{% if article.gerecht_description %}{{article.gerecht_description}}{% endif %}</p>
    </div>
    {% endfor %}
</div>
{% endfor %}

Думаю, то, чего вы пытаетесь достичь, можно сделать с помощью тега шаблона regroup..

{% regroup mygerecht by categorie as article_categories %}
{% for categorie in article_categories %}
<div class="flex">
    <div class="menu-head center">
        <h2>{{categorie.grouper}}</h2>
    </div>
    {% for article in categorie.list %}
    <div class="menu-item">
        <ul class="price">
            <li>{{article.gerecht_name}}</li>
            <li>€{{article.gerecht_price}}</li>
        </ul>
        <p>{% if article.gerecht_description %}{{article.gerecht_description}}{% endif %}</p>
    </div>
    {% endfor %}
</div>
{% endfor %}

Вернуться на верх