Я получаю KeyError при попытке перенаправить на домашнюю страницу в структуре Django - PullRequest
0 голосов
/ 13 июля 2020

Из моего 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)

По-видимому, я получаю ключевую ошибку: 'username'. Не могли бы вы мне помочь? Вероятно, это основная причина, по которой он не перенаправляет меня на домашнюю страницу после входа в систему.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Просто используйте

request.user

Он вернет объект User, если он аутентифицирован, и AnonymousUser, если нет. Примерно так:

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

Подробнее о Django Docs https://docs.djangoproject.com/en/3.0/ref/request-response/#django .http.HttpRequest.user

0 голосов
/ 13 июля 2020

Замените следующим кодом, чтобы устранить ошибку 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)
...