django如何通过DoesNotExist然后引发“Duplicate entry”?

时间:2016-01-19 05:51:16

标签: django django-orm django-users

我收到以下django错误

File "./project/auth_backend.py", line 31, in authenticate
user.save()
...
IntegrityError: (1062, "Duplicate entry 'user_name' for key 'username'") 

所述文件包含以下代码(基于https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#writing-an-authentication-backend

try:
    user = User.objects.get(username=username)
except User.DoesNotExist:
    user = User(username=username, password=password)
...
user.save()

似乎它以某种方式引发了User.DoesNotExist,即使它确实存在。我的数据库是MySQL。

我见过其他有类似问题的人,但与他们不同,我没有使用任何数据库缓存。

1 个答案:

答案 0 :(得分:0)

我有类似的问题。这是由于我的数据库不一致。 _seq在数据库中已过期。要解决此问题,请尝试使用manage.py中的sqlsequencereset功能。它会打印您应该在数据库上执行的所有命令...... 有关详细信息,请参阅here