视图没有返回HttpResponse对象。它返回None而不是

时间:2017-07-22 14:06:04

标签: django django-views

这是我的views.py

views.py
def user_login(request):
    if request.method  == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username = username , password = password)
        if user:
            if user.is_active:
                login(request , user)
                return HttpResponseRedirect('/zdorovo/')
            else:
                return HttpResponse('You dont have an account with us')
        else:
            print "Invalid Login Details: {0} , {1}".format(username , password)
            return HttpResponse('Invalid Login Details ')

    else:
        render(request , 'zdorovo/login.html' , {})

身份验证,登录,HttpResponse,HttpResponseRedirect已正确导入。我也照顾了缩进,所以错误并没有从那个方面提高。 请帮我理解错误。

这是我的login.html

<body>
  <h1>Login</h1>
  <form id="login_id" method="post" action="/zdorovo/login/">
    {% csrf_token %}
    Username: <input type="text" name="username"  value=""/>
    <br/>
    Password: <input type="password" name="password" value=""/>
    <br/>
    <input type="submit" value="Login" />
  </form>
</body>

P.S .: - 如果您需要其他脚本,请更新我。

1 个答案:

答案 0 :(得分:2)

在执行最后else条件时,您的函数不会返回任何内容,您应该添加return语句。

return render(request , 'zdorovo/login.html' , {})