Python 如何在Django中设置电子邮件字段?
您好,我正在Django中创建一个用户模型,但是在电子邮件字段中出现了一个错误,unique=True也不在电子邮件字段中工作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
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”,不适用于电子邮件