【发布时间】:2020-01-19 01:57:06
【问题描述】:
您好,我正在 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中添加一个默认值 选择一个选项:
【问题讨论】:
-
您可能已经迁移了该模型。为什么要自己添加主键?当您在没有显式主键的情况下构建模型时,Django 为您制作了一个。所以我建议你删除
user_id列。 -
我已经编辑了我的代码并删除了该用户 ID,但错误仍然存在
-
@SapanZaveri:设置默认值对该特定问题没有影响。 Django 不知道如何处理
User_id字段。 -
@mohitchandel:现在可能是一个稍微不同的问题......
-
@willem 有两个问题。第一个是我上面提到的,第二个是 'unique=True' 不适用于电子邮件
标签: python django django-models