gpt4 book ai didi

python - 如何显示按外键分组的对象

转载 作者:行者123 更新时间:2023-12-01 06:11:52 27 4
gpt4 key购买 nike

我是 django n00b,但不知道如何做到这一点。

示例模型:

class Food_Type(models.Model):  
name = models.CharField(max_length=200)

class Food(models.Model):
name = models.CharField(max_length=200)
food_type = models.ForeignKey(Food_Type)

还有一些数据:

v = Food_Type(name='Veggie')   
f = Food_Type(name='Fruit')

c = Food(food_type=v, name='carrot')
a = Food(food_type=f, name='apple')

HTML 输出应如下所示:

素食
胡萝卜

水果
苹果<小时/>

  • 我不确定进行分组的正确方法,我假设是 View 而不是模板。

    food_type_list = Food_Type.objects.all().order_by('name')  
    food_list = []
    for ft in food_type_list:
    food_list.append(Food.objects.filter(fruit_type__exact=device_type.id)
    render_to_response(some_template,
    {'food_type': food_type_list, 'foods': food_list}
    )
  • 根据我的观点,我不确定如何显示

行不通,必须有更好的方法

{% for type in food_type %}
{{ type }}
{% for food in foods %}
{% if food.food_type == type %}
{{ food.name }}
{% endif %}
{% endfor %}
{% endfor %}

最佳答案

我认为您正在寻找 regroup

food = Food.objects.all()

{% regroup food by food_type as food_list %}

<ul>
{% for food_type in food_list %}
<li>{{ food_type.grouper }}
<ul>
{% for item in food_type.list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>

关于python - 如何显示按外键分组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com