Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中设置电子邮件字段?_Python_Django_Django Models - Fatal编程技术网

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

Python 如何在Django中设置电子邮件字段?,python,django,django-models,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

您好,我正在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。擦除数据库

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

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

用户Id
声明中添加以下内容之一
default='default VALUE',blank=True或null=True
这将允许您继续,但随后您需要为较老的用户修复它


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

您可能已经迁移了该模型。为什么要自己添加主键?当您在没有显式主键的情况下构建模型时,Django为您创建了一个主键。因此,我建议您删除
user\u id
列。我已经编辑了代码并删除了该用户id,但错误仍然存在there@SapanZaveri:设置默认值对该特定问题没有影响。Django不知道如何处理
User\u id
字段。@mohitchandel:可能现在是个稍微不同的问题了…@willem有两个问题。第一个是我上面提到的,第二个是“unique=True”,不适用于电子邮件