在下面的示例中,我有一个模型Proof
,其中包含模型Option
的外键。
我想列出我的模板中的所有选项以及各自的证明。我如何在django中进行相关连接?我尝试使用_set.all()
方法,但这似乎不适用于查询集,仅适用于单个列表。
感谢您的帮助:)
Models.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()
答案 0 :(得分:4)
我认为这应该在视图()中使用options = Option.objects.all()
的模板中工作。
{% for option in options %}
{{option}}
{% for proof in option.proof_set.all %}
{{proof}}
{% endfor %}
{% endfor %}
答案 1 :(得分:0)
可能有一种奇特的方式来查询并获得您想要的内容,但是如何创建由该选项键入的证明字典呢?
from collections import defaultdict
proofs = Proof.objects.all()
options = defaultdict(list)
for p in proofs:
options[p.option].append(p)