我正在尝试显示所有类别和这些类别中的项目。
例如:
category 1 name
|Item | Qty available|
|Item 1 | 6 |
|Item 2 | 1 |
category 1 info
category 2 name
|Item | Qty available|
|Item 1 | 10 |
|Item 2 | 3 |
category 2 info
我的模特:
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=200)
info = models.TextField(blank=True)
def __unicode__(self):
return self.name
class Item(models.Model):
name = models.CharField(max_length=200)
quantity = models.IntegerField()
category = models.ForeignKey(Category)
def __unicode__(self):
return self.name
我不太确定如何创建一个视图,我可以迭代所有类别并显示包含所有项目的表格。
答案 0 :(得分:0)
这应该可以解决问题:
def show_categories(request):
ctx = {
'categories': Category.objects.all(),
}
return render(request, 'my_template.html', ctx)
模板:
{% for category in categories %}
{{ category.name }}
| Item | Qty available |
{% for item in category.item_set.all %}
| Item {{ item.name|rjust:'3' }} | {{ item.quantity|ljust:'13' }} |
{% endfor %}
{{ category.info }}
{% endfor %}
如果您将related_name='items'
添加到category = models.ForeignKey(Category)
,那么您可以将{% for item in category.item_set.all %}
替换为{% for item in category.items.all %}