【问题标题】:I'm getting a KeyError while trying to redirect to homepage in Django framework我在尝试重定向到 Django 框架中的主页时遇到 KeyError
【发布时间】:2020-07-12 21:45:17
【问题描述】:

根据我的views.py,在下面给出的这个类中

class Home(TemplateView):

    model_name = AccountInfo
    template_name = "BudgetApp/Home.html"

    def get(self, request, *args, **kwargs):
        user = request.session["username"]
        context={}
        context["user"] = user
        return render(request,self.template_name,context)

显然,我遇到了一个关键错误:“用户名”。你能帮我解决这个问题吗? 这可能是我登录后没有重定向到主页的主要原因。

【问题讨论】:

  • request.session.get("username") - 这将摆脱关键错误。但是值将为空。您能提供将用户名添加到会话的代码吗?

标签: python django django-views keyerror


【解决方案1】:

随便用

request.user

如果经过身份验证,它将返回一个 User 对象,如果不是,则返回一个 AnonymousUser。 比如:

If request.user.is_authenticated:
     context["user"]=request.user

阅读更多关于 Django 文档https://docs.djangoproject.com/en/3.0/ref/request-response/#django.http.HttpRequest.user

【讨论】:

  • 非常感谢!现在就试试!!
【解决方案2】:

替换为以下代码将解决您的 KeyError。

class Home(TemplateView):

    model_name = AccountInfo
    template_name = "BudgetApp/Home.html"

    def get(self, request, *args, **kwargs):
        user = request.session.get("username")
        context={}
        if user:
            context["user"] = user
        return render(request,self.template_name,context)

【讨论】:

    猜你喜欢
    • 2014-10-18
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2018-04-03
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多