您好,我正在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中添加默认值 选择一个选项:
答案 0 :(得分:0)
基本上,您的数据库中已经有用户。当您向用户添加新字段时,现有用户在数据库中最终会出现空白。
但是,您的代码不允许出现空白点。正如您的代码当前一样,所有用户在该位置都必须有一个值。
您的选择:
1。擦除数据库
如果您的开发过程不长,只需将数据库重置为没有用户即可。然后所有应该正常工作。
2。对于某些用户,将其设置为空白/空,然后稍后进行修复
在您的User_Id
声明中添加以下内容之一。 default='DEFAULT VALUE', blank=True or null=True
这将使您继续前进,但是以后您需要为年长的用户修复它。
我还将指出,您的错误与电子邮件(User_email
)字段无关,而与User_id
字段有关。只需将其完全删除即可。 Django模型已经带有用于管理主键的内置系统。它是pk
。