繁体   English   中英

如何在 1 个类别名称下显示多个项目?

[英]How to display multiple items under 1 category name?

视图.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))

模型.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

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

看起来像这样,但我希望“Hapjes”中的所有信息都进入 1 个“Hapjes”类别,而不是分开。

我认为您要实现的目标可以通过regroup template tag来完成。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM