> python manage.py datamigration appname unique_password.
其次是python manage.py schemamigration appname –auto – >没有变化.最后,python manage.py迁移appname.
>向前迁移到0003_unique_password
>
应用程序名称:0037_unique_password.py
现在,当我添加一个电子邮件不唯一的用户时,它会给我一个错误,并且不允许我通过django admin创建用户.但当我这样做时:
>
> python manage.py shell
>来自django.contrib.auth.models导入用户
>
用户=用户( ‘cust1’,‘123’,‘[email protected]’)
即使’[email protected]’已经存在,也会创建一个用户对象.
如何为现有项目(带数据)的django.contrib.auth.user.email添加唯一约束?
解决方法 根据模型验证 documentation,在模型验证期间检查唯一性.在模型上调用save()不会自动导致模型验证.管理员应用程序将调用模型验证.没有什么能阻止您在Python中创建User对象,例如user = User(‘cust1′,’123′,’[email protected]’),然后执行user.save().如果在数据库级别存在唯一性检查,则此时可能会出现异常.如果要在执行保存之前进行检查,请在Model实例上调用is_valID().
如果希望在保存之前自动验证每个User对象,请在保存进行之前使用pre_save Django信号进行模型验证.
总结以上是内存溢出为你收集整理的django.contrib.auth.user的唯一电子邮件约束全部内容,希望文章能够帮你解决django.contrib.auth.user的唯一电子邮件约束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)