为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2022-01-18 21:13:26
就像在脸书上一样。登录后用户被提示到用户主页。但它会阻止登录用户返回登录页面,除非用户注销。那么如何防止已登录的用户在登录后返回 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'
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

下面是一些选项。尝试阅读 django 文档https://docs.djangoproject.com/en/2.1/topics/auth/


选项1


这可能是其中一种方式。您检查用户是否已登录并返回合适的 html 页面。


views.py


def 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


查看完整回答
反对 回复 2022-01-18
?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以做的是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 conditions

logged in user即使用户单击登录/注册链接或尝试返回登录页面,这是重定向到主页的一种方法。


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 340 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号