Если пользователь уже вошел в систему, не показывайте форму входа
Я использовал форму создания пользователя для регистрации пользователей.
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)