2017-07-23 18 views
1

我写了一个登录页面,当然它包含一个表单。然后我这样写了我的LoginView使用类:Django,登录失败并返回一个原始的html代码页

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中犯了一个错误?

回答

0

您需要访问form.cleaned_datarequest.POST

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

但它还是回到一个完整的代码页的 – Klawens

+0

问题就迎刃而解了。 {msg}和{login_form}不应该分开 – Klawens

相关问题