【发布时间】:2017-05-03 21:15:13
【问题描述】:
我正在尝试返回一个企业的类别列表,对于每个类别,我想列出与该类别相关的所有项目。
我退回了我所有的物品,而不是按类别,但我决定我希望它们按类别排序。这是我尝试过的(以及其他尝试)我只是无法将项目归入那里。这是我最近的尝试
在我的 models.py 中有
Business(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
logo = models.CharField(max_length=300)
ItemCategory(models.Model):
name = models.CharField(max_length=50)
Item(models.Model):
name = models.CharField(max_length=100)
business = models.ForeignKey(Business)
category = models.ForeignKey(ItemCategory)
short_description = models.CharField(max_length=250)
在我看来.py
def business_profile(request, business_id):
items = Item.objects.filter(business_id = business_id).select_related('itemcategory')
return render(request, 'business_profile.html', {"items": items})
在我的模板中我正在尝试
{% for itemcategory in items.itemcategory_set.all %}
{{ itemcategory.name }}
{% for item in itemcategory %}
{{ item.name }} <br>
{{ item.short_description }}
{% endfor %}
{% endfor %}
根据我对其他问题的研究和阅读文档,我觉得这是正确的。但是根据我的结果,我无法在模板中得到正确的输出。
- 这是正确的做法吗?或者我应该先尝试获取类别
categories = ItemCategory.objects.filter(business = business_id)
然后可能添加一个 select_related('item') 来处理该类别的所有项目?
- 当我在模板中引用数据但我的模型有 2 个单词 (ItemCategory) - 例如,当我向后移动外键或在 select_related('') 中使用模型时 - 我会使用 item_category 还是简单使用不带下划线的 itemcategory?
更新:我在下面的评论中回答了解释。
【问题讨论】:
标签: python django for-loop nested