1


すべてのカテゴリとそれらのカテゴリのアイテムを表示しようとしています。

例えば:

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

すべてのカテゴリを反復処理し、すべてのアイテムを含むテーブルを表示できるビューを作成する方法がよくわかりません。

4

1 に答える 1

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

于 2013-08-24T13:32:05.183 に答える