提问者:小点点

如何在Django中设置电子邮件字段?


您好,我正在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中添加一个默认值选择一个选项:


共1个答案

匿名用户

基本上,您的数据库中已经有了用户。当您向User添加一个新字段时,对于现有用户来说,数据库中最终会有一个空白点。

但是,您的代码不允许出现空白点。由于您的代码当前处于状态,因此对于所有用户,该位置必须有一个值。

您的选择:

1.擦除数据库

如果您在开发过程中时间不长,只需将数据库重置为没有用户即可。那么一切都应该正常工作。

2.对于某些用户,将其设置为空/空,稍后再进行修复

将以下内容之一添加到您的User_Id声明中。默认='DEFAULT VALUE',空白=True或null=True这将允许您继续,但随后您需要为旧用户修复它。

我还要指出,您的错误不是关于电子邮件(User\u email)字段,而是关于User\u id字段。把它完全删除。Django机型已经配备了一个内置的主键管理系统。它是pk