0

我正在关注一些基本的 Django 身份验证教程。我的views.py中有以下内容:

def login(request, onsuccess='/', onfail='/login/'):
    c = {}
    c.update(csrf(request))
    if request.method == "GET":
        return render_to_response('login.html', {'method': 'get'}, context_instance=RequestContext(request))
    else:
        user = authenticate(username=request.POST.get('username'), password=request.POST.get('password'))
        if user is not None:
            login(request, user)
            return redirect(onsuccess)
        else:
            return redirect(onfail)

我知道 GET/POST 逻辑正在工作,因为我在 post 之后有另一个 return_to_render 语句,将 'method': 'post' 发送到视图,以尝试调试。我只是在视图中打印该值,因此我可以根据状态查看 GET 或 POST。

当我用身份验证逻辑替换它时,它似乎没有返回有效的用户对象,因为我被重定向回登录。我尝试从 shell 进行身份验证,它工作正常。

关于我还能做些什么来调试的任何想法?

4

1 回答 1

1

是的,请检查 request.POST 中的内容。那里的凭据是否与数据库中的内容相对应?并阅读使用表单

于 2013-07-20T22:51:16.673 回答