Reputation: 23
From my views.py, in this class given below
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)
Apparently, I'm getting a key error:'username'. Could you please help me out on this? This is probably the main reason why it doesn't redirect to the homepage after login for me.
Upvotes: 0
Views: 302
Reputation: 26
Just use
request.user
It will return a User object if is authenticated and a AnonymousUser if it isn't. Something like:
If request.user.is_authenticated:
context["user"]=request.user
Read more about in Django Docs https://docs.djangoproject.com/en/3.0/ref/request-response/#django.http.HttpRequest.user
Upvotes: 1
Reputation: 475
Replace with following code ll resolve your 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)
Upvotes: 0