上线新的django前后端项目,发生(1062, “Duplicate entry ” for key ‘username'”)故障,作为管理员的我登录测试都没有问题,同事登录就报错,后面研究了一下是扩展用户管理系统的问题。
项目里面用户表继承的是django自带的AbstractUser类,该类的username字段设置为unique=True表示该字段不能重复,默认情况下是True,所以保存有重复名字(因为没有定义,默认default是null,有两位用户就会重复)的用户时,出现报错。你可以查看表结构验证:

解决方法是取消默认不能重复的设置,将数据库的username字段唯一性删除,可以在数据库中直接操作:
1 |
drop index username on users_userprofile; //后面的表示你自己扩展django的user表生成的 |

OK,搞定!
转载请注明:北凉柿子 » django (1062, “Duplicate entry ” for key ‘username'”) 解决