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

时间:2019-09-18 07:21:51

标签: python django django-models

您好,我正在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 个答案:

答案 0 :(得分:0)

基本上,您的数据库中已经有用户。当您向用户添加新字段时,现有用户在数据库中最终会出现空白。

但是,您的代码不允许出现空白点。正如您的代码当前一样,所有用户在该位置都必须有一个值。

您的选择:

1。擦除数据库

如果您的开发过程不长,只需将数据库重置为没有用户即可。然后所有应该正常工作。

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

在您的User_Id声明中添加以下内容之一。 default='DEFAULT VALUE', blank=True or null=True这将使您继续前进,但是以后您需要为年长的用户修复它。

我还将指出,您的错误与电子邮件(User_email)字段无关,而与User_id字段有关。只需将其完全删除即可。 Django模型已经带有用于管理主键的内置系统。它是pk

相关问题