![](/img/trans.png)
[英]Django related_name not working while using self reference in many-to-many field
[英]Django Many-to-Many related_name
class Profile(models.Model):
user = models.OneToOneField(User)
followers = models.ManyToManyField(User, related_name='is_following', blank=True)
activation_key = models.CharField(max_length=120, blank=True, null=True)
activated = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
objects = ProfileManager()
def __str__(self):
return self.user.username
当我键入User.profile.followers.all()
和键入User.is_following.all()
,会收到不同的结果。
首先,我要更改:
followers = models.ManyToManyField(User
至
followers = models.ManyToManyField(Profile
然后,如果您尝试打印
user1 = Profile.objects.create() #missing args but you don't need it for the example
user2 = Profile.objects.create()
user1.followers.add(user2)
user1.followers.all()
你会得到 :
[user2]
但是如果你这样做
user1.is_following.all()
你会得到 :
[]
最后,如果您这样做:
user2.is_following.all()
结果将是:
[user1]
related_name允许您将您的对象放在另一个对象中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.