访问Django querys中的外键

2024-10-01 22:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的例子中,我有一个模型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在

^{pr2}$

Tags: py模型truemodelsnulllengthmaxclass
2条回答

我认为这应该在view()中的options = Option.objects.all()的模板中工作。在

{% for option in options %}
    {{option}}
    {% for proof in option.proof_set.all %}
        {{proof}}
    {% endfor %}
{% endfor %}

也许有一种奇特的方法可以查询并获得您想要的结果,但是创建一个由选项键控的校对词典怎么样?在

from collections import defaultdict
proofs = Proof.objects.all()
options = defaultdict(list)
for p in proofs:
    options[p.option].append(p)

相关问题 更多 >

    热门问题