0

私は Django ORM を学んでいます。

class Toy(models.Model):
    name = models.CharField(max_length=20)
    desc = models.TextField()
    price = models.DecimalField(max_digits=5, decimal_places=2)

class Box(models.Model):
    name = models.CharField(max_length=20)
    proprietor = models.ForeignKey(User, related_name='User_Box')
    toys = models.ManyToManyField(Toy, blank=True)

ビューで次のようなことを試します:

def show_box(request):
    user = request.user
    box = Box.objects.filter(proprietor = user)

    return render_to_response('box.html', {'box': box})

テンプレート内:

{% for b in box %}
    Toy: {% for toys in b.toys.all %}{{ toys }}<br/>{% endfor %} 
    Price:
{% endfor %}

テンプレートでおもちゃの価格を表示するには?

4

1 に答える 1

1

ただ通常のドット表記で。toysToy モデルのインスタンスであるため、その属性にアクセスできます。

{% for box in boxes %}
    {% for toy in box.toys.all %}
        Toy: {{ toy.name }}<br/>
        Price: {{ toy.price }}<br/>
    {% endfor %}
{% endfor %}

紛らわしい変数名を変更したことに注意してください。boxテンプレートに渡した変数boxesは、その所有者が所有するすべてのボックスのセットであるため、実際には でtoysある必要がありますが、テンプレート内では である必要がありますtoy。セットではなく、箱からのおもちゃ。

于 2012-09-27T11:41:42.817 に答える