限制登录用户在不退出登录的情况下访问登录和注册的首页

就像在脸书上一样。登录后用户被提示到用户主页。但它会阻止登录用户返回登录页面,除非用户注销。那么如何防止已登录的用户在登录后返回


 def register(request):

    form = self.register_form(request.POST)

    if request.method=='POST':

        if form.is_valid():

            user = form.save(commit=False)

            firstName=form.cleaned_data.get('firstName')

            lastName=form.cleaned_data.get('lastName')

            username=form.cleaned_data.get('username')

            email=form.cleaned_data.get('email')

            password=form.cleaned_data.get('password1')

            user.set_password(password)

            user.save()

            messages.success(request, f'Account successfully created!')


            return redirect('login')



    else:

        form = UserRegisterForm()

    return render(request, 'registration/register.html', {'form': form})



    path('login/', auth_views.LoginView.as_view(template_name='registration/login.html',redirect_authenticated_user=True), name='login'),


# path('logout/', auth_views.LogoutView.as_view(template_name='registration/logout.html'), name='logout'),

path('register/', views.register, name='register'),



LOGIN_REDIRECT_URL = 'home:index'

LOGIN_URL = 'login'

LOGOUT_REDIRECT_URL = 'index'


HUWWW
浏览 341回答 2
2回答

慕桂英3389331

下面是一些选项。尝试阅读 django 文档https://docs.djangoproject.com/en/2.1/topics/auth/选项1这可能是其中一种方式。您检查用户是否已登录并返回合适的 html 页面。views.pydef home(request):  if not request.user.is_anonymous:     return render("home.html")  else:     return render("login.html")选项 2检查用户是否已登录,如果已登录,则重定向到主页端点    from django.shortcuts import render, HttpResponseRedirect    from django.contrib.auth import login_required    def login(request):       if not request.user.is_anonymous:           return HttpResponseRedirect('/home')    @login_required    def home(request):       # Render you home page response

噜噜哒

您可以做的是redirect即使用户单击login/signup链接,用户也可以访问主页。为此,您可以在loginandsignup视图中做一些事情:def login(request):    # if the user is already logged in, redirect to user home page    if request.user.is_authenticated:        # redirect to the home page    else:        # do something like defining get or post method request conditions def signup(request):    # if the user is already logged in, redirect to user home page    if request.user.is_authenticated:        # redirect to the home page    else:        # do something like defining get or post method request conditionslogged in user即使用户单击登录/注册链接或尝试返回登录页面,这是重定向到主页的一种方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python