Django 自引用 m2m 字段导致缺少属性错误

Django self referential m2m field causes causes missing attribtue error

如果我尝试制作一个自我引用的 m2m 字段,我会收到错误消息。我在这里遗漏了什么吗?

class UserProfile(models.Model):
    following = models.ManyToManyField('self', related_name='followers')

序列化程序中的其他地方:

def get_followers(user):
    return user.profile.followers

AttributeError: 'UserProfile' object has no attribute 'followers'

还有其他方法可以实现关注者吗?也许我应该制作另一个模型来执行此操作或使用库?

默认情况下,Django 将所有 self m2m 关系视为对称的,例如,如果我是你的朋友,你也是我的朋友。当关系对称时,Django 不会为您的模型创建反向关系属性。

如果要定义非对称关系,请在字段上设置 symmetrical=False 属性,例如:

    following = models.ManyToManyField('self', related_name='followers', symmetrical=False)

Django documentation

中有更多相关信息