mpe*_*pen 12 django django-models django-orm
A BlogPost有很多个Comment.我想得到一份BlogPosts及其所有评论的清单.
因此,我有
BlogPost.objects.filter(my_filter).select_related()
Run Code Online (Sandbox Code Playgroud)
但是ForeignKey是在Comment,而不是BlogPost,所以select_related()不会预取任何评论.有没有办法让这个工作?
我不能反向查询(Comment.objects...),因为随后的其他对象select_related() 并获取是行不通的.我需要双向工作.
Mar*_*mro -1
为什么不获取评论,然后使用重新分组模板标签来显示它们:
# Select all Comments with BlogPost data - one query
comments = Comment.objects.select_related('blog_post').order_by('-blog_post').all()
Run Code Online (Sandbox Code Playgroud)
然后在模板中:
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5369 次 |
| 最近记录: |