如何解决尝试登录时的完整性错误。(德詹戈)

2024-06-28 11:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图登录时,我收到一个错误

 duplicate key value violates unique constraint "auth_user_username_key"
DETAIL:  Key (username)=(mrfrasha) already exists.

我真的不知道这意味着什么。看起来很奇怪。这看起来像是一个错误你试图创建一个用户名已经在使用,但我只是试图登录。在

^{pr2}$

Tags: keyauthvalue错误existsusernameuniquedetail
2条回答

不完全确定这是否能解决问题,但这里似乎有一个问题:

if request.POST=='POST':

在请求.POST是字典,在这种比较中永远不会求值为真。在

或许可以尝试将其改为:

^{pr2}$

这至少可以让您进入代码的正确if/else部分。在

我认为的问题是,您通过声明同名的函数来重写django login函数,当该语句执行login(request, user)时,该函数将变为递归函数。在

由于您的函数只接受一个参数,所以login(request, user)此语句会导致login() takes one argument and got two的异常。在

将您的函数名更改为其他名称,例如my\u login(request)

希望这有帮助。 谢谢

已编辑

你的功能应该是这样的。在

def my_login(request):
    if  request.method=='POST':
        username = request.POST['username']
        password =request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return render_to_response('profile.html')
            else:
                print "Your account has been disabled!"#come back to me
        else:
            sentence = "Your username and password were incorrect."# come back to me
            return render_to_response('login.html', {'sentence':sentence})
    else:
        return render_to_response('login.html')#come back to me

相关问题 更多 >