KeyError at /login/'is_login' 请求方法:django

http://img1.mukewang.com/6177bfa40001183025580749.jpg

我正在用 django 编写网络代码。我不能使用会话。我想检查登录使用会话


def user_login(request):

    if request.session['is_login'] == True:

        return HttpResponseRedirect('/home')

    else:

        next = request.POST.get('next', request.GET.get('next', ''))

        if request.method == "POST":

            username1 = request.POST.get('username')

            password1 = request.POST.get('password')

            user = authenticate(username=username1, password=password1)

            if user is not None:

                if user.is_active:

                    login(request, user)

                    if next:

                        request.session['is_login'] = True

                        return HttpResponseRedirect(next)


                    return HttpResponseRedirect('/home')


                else:

                    return HttpResponse('Inactive user')

            else:

                return HttpResponseRedirect(LOGIN_URL)

        return render(request, "pages/login.html")

怎么修


慕盖茨4494581
浏览 467回答 3
3回答

萧十郎

谢谢大家支持我。我解决了如果 request.session.get['is_login'] == True: 到 if request.session.get('is_login') == True:

Cats萌萌

正如我在评论中提到的改变这个:if request.session['is_login'] == True:对此:if request.session.get('is_login') == True:request.session.get不引发KeyError它要么返回关键位置的值,要么返回a None。您还可以在未找到键时更改默认行为,即None您可以返回其他类似这样的内容,而不是返回:request.session.get('is_login', False)上面的语句将False在失败时返回而不是None.访问文档了解更多信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python