Here is the documentation on related_name
Lets say you have 2 models
class Group(models.Model):
#some attributes
class Profile(models.Model):
group = models.ForeignKey(Group)
#more attributes
Now, from a profile object, you can do profile.group
. But if you want the profile objects given the group
object, How would you do that? Thats' where related name
or the reverse relationship
comes in.
Django, by defaults gives you a default related_name
which is the ModelName (in lowercase) followed by _set
- In this case, It would be profile_set
, so group.profile_set
.
However, you can override it by specifying a related_name
in the ForeignKey
field.
class Profile(models.Model):
group = models.ForeignKey(Group, related_name='profiles')
#more attributes
Now, you can access the foreign key as follows:
group.profiles.all()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…