如何在Django中使用ManyToManyField实现关注者/跟随?

问题描述 投票:0回答:1

我想在Django应用程序中使用manytomanyfield实现以下功能。我为具有两个属性的每个用户创建了UserProfile类:user和follow。用户继承默认的Django用户模型。

class UserProfile(models.Model):
    user = models.OneToOneField(User, related_name = 'user', on_delete=models.CASCADE)
    follows = models.ManyToManyField("self", related_name = 'follower',symmetrical=False )

我在python shell中尝试过:

>>> lily = User(username="Lily")
>>> lily.save()
>>> mary = User(username="Mary")
>>> mary.save()
>>> lily_profile = UserProfile(user=lily)
>>> lily_profile.save()
>>> mary_profile = UserProfile(user=mary)
>>> mary_profile.save()
>>> lily_profile.follows.add(mary_profile)

但是执行lily_profile.follows.add(mary_profile)后出现此错误:

django.db.utils.OperationalError: table polls_userprofile_follows has no column named from_userprofile_id

有人知道如何解决此错误吗?非常感谢!

python sql django manytomanyfield twitter-follow
1个回答
0
投票

尝试删除您的迁移文件,然后在命令下重新运行

python manage.py makemigrations 
python manage.py migrate 
© www.soinside.com 2019 - 2024. All rights reserved.