0

以下の例では、モデルProofへの外部キーを含むモデルがありますOption。テンプレート内のすべてのオプションとそれぞれの証明を一覧表示したいと考えています。djangoで関連する結合を行うにはどうすればよいですか? メソッドを使用してみ_set.all()ましたが、クエリセットでは機能しないようで、単一のリストでのみ機能します。

ご協力いただきありがとうございます :)

モデル.py

class Option(TimeStampActivate):
    title = models.CharField(max_length=500,null=True)
    user = models.ForeignKey(User)
    option = models.CharField(max_length=300)

class Proof(TimeStampActivate):
    user = models.ForeignKey(User)
    option = models.ForeignKey(Option)
    comment = models.CharField(max_length=500,null=True)
    link = models.URLField()

View.py

options = Option.objects.all()
4

2 に答える 2

4

options = Option.objects.all()これは、 in view()を使用してテンプレートで機能するはずだったと思います。

{% for option in options %}
    {{option}}
    {% for proof in option.proof_set.all %}
        {{proof}}
    {% endfor %}
{% endfor %}
于 2012-06-15T04:51:08.943 に答える
0

クエリを実行して必要なものを取得するための優れた方法がおそらくあると思いますが、オプションによってキー付けされた証明の辞書を作成するのはどうでしょうか?

from collections import defaultdict
proofs = Proof.objects.all()
options = defaultdict(list)
for p in proofs:
    options[p.option].append(p)
于 2012-06-15T04:43:43.623 に答える