注销后移回网页

时间:2017-07-01 06:27:01

标签: django

在登录时,部门的密钥以分离方式存储,并被重定向到用户所需的部门

<_> in login_validation

  check = models.user.authenticate(password_entered, username_entered)

        if check:
            print('valid login')
            # check the type of user
            request.session['department'] = check['department']             
            request.session.modified = True

并在注销时删除部门密钥

def logout(request):
    if request.session.has_key('department'):
        del request.session['department']
        request.session.modified = True
    return render(request, 'login.html', {'login_form': forms.login_form})

如果不是用户被重定向到登录页面,则检查网站内的每个页面是否存在部门密钥

def parts_home(request):
    try:
        department= request.session['department']
        if department != 'parts':
            raise Exception
    except:
        return HttpResponseRedirect(reverse('main:login_page'))

这可以正常工作,同时在地址栏中对部门的URL进行硬编码,但在调用注销后按下后退按钮后,不会检查部门键并加载部门页面而不是登录页面。解决方案是什么?

1 个答案:

答案 0 :(得分:0)

尝试装饰器login_required

在视图功能之前添加此装饰器。

例如,

from django.contrib.auth.decorators import login_required

@login_required(login_url='/login')
def my_view(request):
    ....
    ....

参考:
the-login-required-decorator