[英]accessing foreign key in django queryset
在下面的示例中,我有一個模型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()
我認為這應該在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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.