Если пользователь уже вошел в систему, не показывайте форму входа

Я использовал форму создания пользователя для регистрации пользователей.

class UserSignUpView(SuccessMessageMixin, FormView):
    form_class = UserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'core/signup.html'
    success_message = 'Account created successfully.'

Когда пользователь уже вошел в систему, он не должен видеть форму регистрации

Вы можете достичь этого, используя dispatch() метод

, основанный на классе.
from django.contrib.auth.mixins import LoginRequiredMixin

class UserSignUpView(LoginRequiredMixin, SuccessMessageMixin, FormView):
    form_class = UserCreationForm
    success_url = reverse_lazy('login')
    template_name = 'core/signup.html'
    success_message = 'Account created successfully.'

    def dispatch(self, request, *args, **kwargs):
        if self.request.user.is_authenticated:
            # User is already logged in, redirect them to another page
            return redirect('home')  # Redirect to the home page or any other desired URL
        return super().dispatch(request, *args, **kwargs)
Вернуться на верх