我想在我的Django應用程序中實現關注者/關注者功能。如何在Django中實現關注者/關注
我有一個用戶配置類每用戶(django.contrib.auth.User):
class UserProfile(models.Model):
user = models.ForeignKey(User, unique = True, related_name = 'user')
follows = models.ManyToManyField("self", related_name = 'follows')
於是,我就這樣做在Python Shell:
>>> user_1 = User.objects.get(pk = 1) # <-- mark
>>> user_2 = User.objects.get(pk = 2) # <-- john
>>> user_1.get_profile().follows.add(user_2.get_profile())
>>> user_1.get_profile().follows.all()
[<UserProfile: john>]
>>> user_2.get_profile().follows.all()
[<UserProfile: mark>]
但正如您所看到的,當我向用戶的follows
字段添加新用戶時,還會在另一側添加對稱關係。從字面上看:如果user1跟隨user2,user2跟隨user1,並且這是錯誤。
我的錯誤在哪裏?你有沒有一種實現追隨者的方式,並遵循正確的方式?
謝謝你們。
這是正確的傢伙。謝謝。 – 2011-06-03 02:09:08
symmetrical = False和related_name ='fie +'有什麼區別? – danielrvt 2012-08-07 01:46:16