I'm a bit confused how to use _set
in a QuerySet
in Django. For example, an object Blog b
, and the object Entry
related by the attribute entry_set
. What is the meaning of b.entry_set.all()
?
I would appreciate if someone could use this example to display the possible output.
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.