What you are seeing is a reverse related object lookup.
In your example:
class Blog(models.Model):
pass
class Entry(..):
blog = Blog(..)
Now, given object e
of type Entry
, you would do e.blog
to access the related object Blog
- which is a forward relation.
The _set
is a reverse lookup class variable django puts in for you.
So, given object b
- you would do:
entries = b.entry_set.all()
The reason the reverse is a queryset is, ForeignKey is 1-to-many
relationship. Hence, the reverse is a queryset.
The _set
object is made available when related_name
is not specified.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…