0

私は SO で多くの「テーブルアクセスを介して」閲覧したので、何か見逃した場合は、これを閉じてください。

テーブル A、テーブル B、および nn リレーションシップとテーブル C を使用しています。C には「in_stock」プロパティが含まれています。明らかに、オブジェクト A1 と B1 の組み合わせは常に一意です。では、A1 と B1 が与えられた場合、テンプレートで「スルー テーブル」C の「in_stock」プロパティにアクセスするにはどうすればよいでしょうか。

追加情報:

A1 がテンプレートに持っている Bs をループしているので、繰り返しで A1-B1、別の A1-B2 などを使用できます。

4

1 に答える 1

2

そのためにカスタムタグを使用します:

(テンプレートに A1 があると仮定します)

{% load custom_tag %}
<ul>
{% for b in Bs %}
    {% autoescape off %}
        <li>in_stock for {{ A1 }} and {{ b }} : {{ A1|through:b }}</li>
    {% endautoescape %}
</ul>
{% endfor %}

custom_tag.py

register = template.Library()


def through(A1, b):
    t = "%s" % (C.objects.get(b=b, a=A1).in_stock)
    return t


register.filter(through)
于 2012-08-29T10:24:33.320 に答える