我正在尝试在Django中创建一个简单的“跟随”功能,就像这样(顺便说一下,我没有使用django.contrib.auth
,如果这有所不同):
class User(models.Model):
followers = models.ManyToManyField('self')
# rest of code
我已经在我的网站上测试了两个用户,用户X和用户Y ...但是当用户X被添加到用户Y的粉丝时,用户Y也被添加到用户X的粉丝,这不是预期的结果。我怎么能让这个片面的关系?我做错了吗?
答案 0 :(得分:1)
您需要建立关系asymmetrical。
答案 1 :(得分:1)
默认情况下,自引用ManyToManyField
是对称的。请参阅following in the docs:
...
ManyToManyField
被认为是对称的 - 也就是说,如果我是你的 朋友,那你就是我的朋友。如果你不想在与自我的多对多关系中保持对称, 将对称设置为False。这将强制Django添加描述符 对于反向关系,允许ManyToManyField关系 是非对称的。