小编典典

管理员页面上的Django唯一,空和空白CharField给出“已经存在”错误

python

我收到了有史以来最奇怪的错误。我有一个人物模型

class Person(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    facebook_id = models.CharField(max_length=225, unique=True, null=True, blank=True)
    twitter_id = models.CharField(max_length=225, unique=True, null=True, blank=True)
    suggested_person = models.BooleanField(default=False)

我最近添加了twitter_id字段。当我访问Django管理页面时,尝试将“人”更改为“ suggested_person”时,出现以下错误:

 Person with this Twitter id already exists.

我发现此错误非常奇怪,因为Facebook_id字段的设计方式与Twitter_id字段完全相同。

这可能是什么原因?


阅读 114

收藏
2021-01-20

共1个答案

小编典典

由于您具有null=True, blank=True
unique=True,因此django将考虑None或将其作为唯一项。删除唯一性约束并处理代码中的唯一性部分。

2021-01-20