如果用户已经登录,则不显示登录表单

问题描述 投票:0回答:1

我已使用用户创建表格进行用户注册。

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

当用户已经登录时,它不应该看到注册表单

django django-rest-framework django-views django-class-based-views
1个回答
0
投票

您可以使用基于类的视图的

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:
            return redirect('home')  # Redirect to the home page or any other desired URL
        return super().dispatch(request, *args, **kwargs)
© www.soinside.com 2019 - 2024. All rights reserved.