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.