一尘不染

_set在Django中查询集

django

我有点困惑如何使用_setQuerySetDjango的。例如,一个对象Blog b,以及与该对象Entry相关的attribute entry_set。是什么意思b.entry_set.all()

如果有人可以使用此示例显示可能的输出,我将不胜感激。


阅读 1529

收藏
2020-04-03

共1个答案

一尘不染

你看到的是反向相关的对象查找。

在你的示例中:

class Blog(models.Model):
    pass

class Entry(..):
    blog = Blog(..)

现在,给定e类型为object的对象Entry,你将e.blog可以访问相关对象Blog-这是一个正向关系。该_set是一个反向查找类变量的Django为你看跌期权。

因此,给定对象b-你将执行以下操作:

entries = b.entry_set.all()

反向查询集的原因是,ForeignKey是1-to-many关系。因此,相反是一个查询集。

未指定_set时,该对象可用。related_name

2020-04-03