我怎样才能禁止用户在他已经登录的情况下进入注册页面?姜戈 2.1.2

How can I disallow the user to go to the register page when he is already logged in? Django 2.1.2

我用 django 做了一个管理面板。其中包括管理员的登录注册和仪表板,但我面临的问题是:

假设用户登录系统,然后用户进入url并使用url注册页面。 localhost/register 当他已经登录并且不需要去注册页面注册另一个用户帐户时。我不希望这发生。

如何禁止已经登录的用户进入注册页面。我们如何解决这个问题?请帮助

你可以这样试试:

def register(request):
   if request.user.is_authenticated:
       return redirect('/')  # or reverse('home_url_name')
   else:
       ....

根据评论更新:

您也需要覆盖 LoginView 才能在登录中添加此功能,例如:

from django.contrib.auth import views as auth_views

class CustomLoginView(auth_views.LoginView):
    def get(self, request, *args, **kwargs):
       if request.user.is_authenticated:
           return redirect('/')
       return super(CustomLogin, self).get(request, *args, **kwargs)


# URL
path('accounts/login/', CustomLoginView.as_view()),