我写了一个登录页面,当然它包含一个表单。然后我写了这样的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中犯了错误?
答案 0 :(得分:0)
您需要访问form.cleaned_data
而不是request.POST
,
username = login_form.cleaned_data['username']
password = login_form.cleaned_data['password']