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()

视图.py

options = Option.objects.all()
4

2 回答 2

4

我认为这应该options = Option.objects.all()在 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 回答