Django,登录失败并返回原始HTML代码页

时间:2017-07-23 08:10:07

标签: html django

我写了一个登录页面,当然它包含一个表单。然后我写了这样的LoginView使用类:

class LoginView(View):
def get(self, request):
    return render(request, "login.html")

def post(self, request):
    login_form = LoginForm(request.POST)
    if login_form.is_valid():
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return render(request, 'index.html')
            else:
                return render(request, 'login.html', {'msg':'账号未激活!'}, {'login_form':login_form})
        else:
            return render(request, 'login.html', {'msg':'用户名不存在!'}, {'login_form':login_form})
    else:
        return render(request, 'login.html', {'msg':'用户名或密码错误!'}, {'login_form':login_form})

忽略你可能不知道的中国人。 我试图输入错误的用户名和密码,它应该返回带有错误消息的同一页面以允许我再次输入,但是...... 它返回一个包含所有html代码的页面,好像浏览器没有编译代码? 如果我在LoginView中犯了错误?

1 个答案:

答案 0 :(得分:0)

您需要访问form.cleaned_data而不是request.POST

username = login_form.cleaned_data['username']
password = login_form.cleaned_data['password']