Sam B.
Sam B.

Reputation: 3033

Django Class Based Views TemplateView perform redirect if user is logged in

I'm rewriting my function views to class based views, the previous login page below

def login(request, template_name="login.html"):
    context = {}

    if request.user.is_authenticated:
        return HttpResponseRedirect(reverse('home'))

    return render(request, template_name, context)

would check to see if your already logged in, if yes would redirect you to the homepage

how can i do the same with a templateview below?

class LoginView(TemplateView):
    template_name = "login.html"

Upvotes: 1

Views: 598

Answers (1)

JPG
JPG

Reputation: 88499

Override the get(...) method

class LoginView(TemplateView):
    template_name = "login.html"

    def get(self, request, *args, **kwargs):
        if self.request.user.is_authenticated:
            return HttpResponseRedirect(reverse('home'))
        return super().get(request, *args, **kwargs)

Upvotes: 2

Related Questions