我有点困惑如何使用_set在QuerySetDjango的。例如,一个对象Blog b,以及与该对象Entry相关的attribute entry_set。是什么意思b.entry_set.all()?
_set
QuerySet
b
Entry
b.entry_set.all()
如果有人可以使用此示例显示可能的输出,我将不胜感激。
你看到的是反向相关的对象查找。
在你的示例中:
class Blog(models.Model): pass class Entry(..): blog = Blog(..)
现在,给定e类型为object的对象Entry,你将e.blog可以访问相关对象Blog-这是一个正向关系。该_set是一个反向查找类变量的Django为你看跌期权。
e
object
e.blog
Blog
因此,给定对象b-你将执行以下操作:
entries = b.entry_set.all()
反向查询集的原因是,ForeignKey是1-to-many关系。因此,相反是一个查询集。
1-to-many
未指定_set时,该对象可用。related_name
related_name