django - 收到错误<Follower : Follower object (None)> instance isn't saved. 使用bulk=False 或先保存对象

标签 django django-models manage.py

我正在尝试在 django 中创建关注功能。我正在使用以下模型。我想测试这是否适用于 django manage.py shell。当我进行相关导入并运行时

user1.following.add(Follower(following=user2))

我收到以下错误

<Follower: Follower object (None)> instance isn't saved. Use bulk=False or save the object first.

这是什么原因?

模型.py

class Follower(models.Model):
    follower = models.ForeignKey(User, related_name='following',on_delete=models.PROTECT)
    following = models.ForeignKey(User, related_name='followers',on_delete=models.PROTECT)

    class Meta:
        unique_together = ('follower', 'following')

    def __unicode__(self):
        return u'%s follows %s' % (self.follower, self.following)

最佳答案

我不知道你期望发生什么。正如错误所示,您尚未保存该 Follower 对象。

但这似乎不是正确的做法。我认为您只想为两个用户创建一个 Follower 对象:

Follower.objects.create(follower=user1, following=user2)

直接将其添加到两侧。

更好的是,完全删除您的 Follower 模型,并将 User 上的 ManyToMany 关系声明回“self”,并使用对称=False。

关于django - 收到错误<Follower : Follower object (None)> instance isn't saved. 使用bulk=False 或先保存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55462854/

相关文章:

Django Rest Serializer.data 是一个空的 OrderedDict()

python - Django 查找图中两个顶点之间的路径

python - Django runserver 绑定(bind)到 0.0.0.0,如何获取哪个 IP 接受了请求?

python - 如果多个Django应用定义相同的自定义管理命令,使用哪个?

django - DRF 测试模型序列化器 - Django Rest Framework

sql - 当一个范围具有一系列开始日期时比较两个日期范围

python - 将所有自定义验证放入模型中有什么问题?

python - Django 命令错误 : App 'polls' has migrations

django - 排序时 : '<' not supported between instances of 'NoneType' and 'str'

django - django-environ 的目的?