【发布时间】:2017-12-11 21:04:29
【问题描述】:
我想在一个查询中获取所有Blogs,同时,如果博客有,我想知道每个博客的条目(或多个条目)。
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
class Entry(models.Model):
blog = models.ForeignKey(Blog)
headline = models.CharField(max_length=255)
like 访问 blog.ENTRY 属性。这是首先想到的方法。 1) 获取所有博客,2) 设置每个博客条目属性及其条目:
for blog in Blog.objects.all():
entry = Entry.objects.filter(blog=blog)
setattr(blog, 'ENTRY', entry)
但我只想在一个查询中执行此操作,因为我不想在 for 循环中执行 Entry 过滤器查询。
【问题讨论】:
-
不确定您要做什么。每个博客都有一个属性
entry_set,它是相关条目的查询集。 -
查看此线程和
select_related的 Django 文档:stackoverflow.com/questions/33230540/… -
对不起,你的问题看得太快了,这是一个更好的线程解释
select_related和prefetch_related:stackoverflow.com/questions/23121850/… -
你到底想做什么?
标签: django