Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
唯一约束失败-Django_Django_Debugging_Django Models - Fatal编程技术网

唯一约束失败-Django

唯一约束失败-Django,django,debugging,django-models,Django,Debugging,Django Models,我无法解决这个问题。我看到过类似的问题,但没有一个答案有用 我的型号: class MyUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField(_('email address'), max_length=254, unique=True) contact_number = models.IntegerField(_('contact number'), validators=RegexValidat

我无法解决这个问题。我看到过类似的问题,但没有一个答案有用

我的型号:

class MyUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), max_length=254, unique=True)
    contact_number = models.IntegerField(_('contact number'), validators=RegexValidator(r'^\+?1?\d{9,10}$'), unique=True, null=True, blank=True)
    ....
迁移时出现的错误:

django.db.utils.IntegrityError: UNIQUE constraint failed: user_profile_myuser.contact_number
更新:

class MyUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), max_length=254, unique=True)
    contact_number = models.IntegerField(_('contact number'), validators=RegexValidator(r'^\+?1?\d{9,10}$'), unique=True, null=True, blank=True)
    ....
我的回溯:

回溯(最近一次呼叫最后一次):

文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/core/management/_init___;.py”,第363行,从命令行执行
utility.execute()
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/core/management/_init___;.py”,执行中第355行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/Django/core/management/base.py”,第283行,从_argv运行
self.execute(*args,**cmd_选项)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/contrib/auth/management/commands/createsuperuser.py”,执行中的第63行
返回super(命令,self).execute(*args,**选项)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/core/management/base.py”,第330行,执行
输出=self.handle(*args,**选项)
handle中的文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/contrib/auth/management/commands/createsuperuser.py”,第183行
self.UserModel.\u default\u manager.db\u manager(数据库).创建超级用户(**用户数据)
文件“/home/surajit/website/PubNet/user\u profile/manager.py”,第31行,在create\u superuser中
**额外字段)
文件“/home/surajit/website/PubNet/user\u profile/manager.py”,第22行,在“创建用户”中
user.save(使用=self.\u db)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/contrib/auth/base_user.py”,第80行,保存
super(AbstractBaseUser,self).save(*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/base.py”,第806行,保存
强制更新=强制更新,更新字段=更新字段)
save_base中的文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/base.py”,第836行
更新=自我。保存表格(原始、cls、强制插入、强制更新、使用、更新字段)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/base.py”,第922行,在保存表中
结果=self.\u do\u insert(cls.\u base\u manager,using,fields,update\u pk,raw)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/base.py”,第961行,插入
使用=使用,原始=原始)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/manager.py”,第85行,在manager_方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/query.py”,第1060行,插入
return query.get\u编译器(using=using).execute\u sql(return\u id)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/models/sql/compiler.py”,第1099行,在execute_sql中
cursor.execute(sql,params)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/backends/utils.py”,执行中第80行
返回super(CursorDebugWrapper,self).execute(sql,params)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/backends/utils.py”,执行中第65行
返回self.cursor.execute(sql,params)
文件“/usr/local/lib/python2.7/dist-packages/Django-1.11-py2.7.egg/Django/db/utils.py”,第94行,在__
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/backends/utils.py”,执行中第65行
返回self.cursor.execute(sql,params)
文件“/usr/local/lib/python2.7/dist packages/Django-1.11-py2.7.egg/Django/db/backends/sqlite3/base.py”,执行中的第328行
返回Database.Cursor.execute(self、query、params)
django.db.utils.IntegrityError:非空约束失败:用户\u配置文件\u myuser.contact\u号码

请提供帮助。

从django.core.validators导入RegexValidator

class MyUser(AbstractBaseUser, PermissionsMixin):
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,10}$', message="Phone number must be entered in the format: '+999999999'")
    phone_number = models.CharField(validators=[phone_regex], blank=True unique=True, null=True, blank=True)

将null和blank设为False,并尝试在makemigratiosnyes之前删除旧的迁移文件。现在迁移成功了。但现在我在创建超级用户时出错了。请检查回溯。这是另一个问题,你需要单独发布。我会的。谢谢@Exprator.)