您好,我正在Django中创建一个用户模型,但是在电子邮件字段中出现了一个错误,unique=True也不在电子邮件字段中工作。
class User(models.Model):
user_name = models.CharField(max_length=50,unique=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
User_email = models.EmailField(max_length=70,blank=True,unique=True)
password = models.CharField(max_length=12)
尝试运行命令“python manage.py makemigrations”时出现的错误:
您试图在没有默认值的情况下向用户添加一个不可为空的字段“first_name”;我们不能这样做(数据库需要一些东西来填充现有的行)。请选择一个修复:1)现在提供一个一次性默认值(将在所有现有行上设置此列的空值)2)退出,让我在models.py中添加一个默认值选择一个选项:
基本上,您的数据库中已经有了用户。当您向User添加一个新字段时,对于现有用户来说,数据库中最终会有一个空白点。
但是,您的代码不允许出现空白点。由于您的代码当前处于状态,因此对于所有用户,该位置必须有一个值。
您的选择:
1.擦除数据库
如果您在开发过程中时间不长,只需将数据库重置为没有用户即可。那么一切都应该正常工作。
2.对于某些用户,将其设置为空/空,稍后再进行修复
将以下内容之一添加到您的User_Id
声明中。默认='DEFAULT VALUE',空白=True或null=True
这将允许您继续,但随后您需要为旧用户修复它。
我还要指出,您的错误不是关于电子邮件(User\u email
)字段,而是关于User\u id
字段。把它完全删除。Django机型已经配备了一个内置的主键管理系统。它是pk
。