Django auth - 成功和失败导致相同的行为

时间:2013-07-20 21:11:58

标签: python django authentication

我正在关注一些基本的Django auth教程。我的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进行身份验证,它工作正常。

关于我还可以做什么调试的任何想法?

1 个答案:

答案 0 :(得分:1)

是检查请求中的内容.POST。那里的凭据是否与数据库中的内容相对应?并阅读Working with forms