BlogPost
有很多Comment
个。我想获得BlogPost
的列表及其所有评论。
因此,我有
BlogPost.objects.filter(my_filter).select_related()
但是ForeignKey位于Comment
,而不是BlogPost
,因此select_related()
不会预取任何评论。有没有办法让这个工作?
我无法撤消查询(Comment.objects...
),因为select_related()
获取的其他对象将无效。我需要双向工作。
答案 0 :(得分:-1)
为什么不提取评论,然后使用regroup模板标记来显示它们:
# Select all Comments with BlogPost data - one query
comments = Comment.objects.select_related('blog_post').order_by('-blog_post').all()
然后在模板中:
{% regroup comments by blog_post as posts %}
{% for blog_post in posts %}
<p>Blog post {{ blog_post.title }}</p>
<ul>
{% for comment in blog_post.comments %}
...
{% endfor %}
</ul>
</p>
{% endfor %}