You can simply redirect to a different url, and that url is also supported by the class based view.
urls.py
url(r'^$', HomeView.as_view(), name='home'), url(r'^login/', LoginView.as_view(), name='login'), url(r'^welcome/$', WelcomeView.as_view(), name='welcome')
views.py
class HomeView(TemplateView): def get(self, request, *args, **kwargs): if request.user.is_authenticated(): return HttpResponseRedirect(reverse('welcome')) else: return HttpResponseRedirect(reverse('login')) class WelcomeView(TemplateView): def get(self, request, *args, **kwargs):
source share