@kpronink

Как сделать проверку во Base Views что пользователь уже авторизован и не показывать ему страницу login?

class LoginFormView(FormView):

    form_class = AuthenticationForm

    template_name = "login.html"

    success_url = "/"

    def form_valid(self, form):
        self.user = form.get_user()

        login(self.request, self.user)
        return super(LoginFormView, self).form_valid(form)
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
Комментировать
@shudry_toster
from django.urls import reverse
from django.shortcuts import redirect

class AlreadyLoggedIn(object):
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated:
            return redirect(reverse('your-url'))
        else:
            return super(AlreadyLoggedIn, self).dispatch(request, *args, **kwargs)

И теперь только остается добавить:
class LoginFormView(AlreadyLoggedIn, FormView):
...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы