用户在django中注销后如何拒绝访问上一页?

时间:2018-10-18 17:09:02

标签: python django django-templates django-views django-1.8

我是django的新手,我在Ubuntu服务器上使用1.8版本,我成功完成了登录和注销过程,但是当我的用户尝试转到上一页时,他们可以将其视为匿名用户。如何拒绝访问?

我尝试在views.py上使用if,但是不起作用:

def login(request):
    if not request.user.is_authenticated():
        return render(request,"base.html",{})
    return render(request,"general.html",{})

@login_required 
def general(request):
    return render(request,"general.html")

希望有人可以帮助我。

编辑: 我正在使用django的默认URL登录和注销。

url(r'^$','django.contrib.auth.views.login', {'template_name': 'base.html'}, name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': 'login'}, name='logout'),

2 个答案:

答案 0 :(得分:0)

您可以使用来隐藏模板,

{% if user.is_authenticated %}
<html></html>
{% else %}
<html> add for logged out user</html>
{% endif %}

这将阻止用户在注销后单击“后退”按钮来查看您的页面。

编辑:在注销功能中,您可以使用此功能,

from django.views.decorators.cache import cache_control

@cache_control(no_cache=True, must_revalidate=True)
 def your_function()
   #add your code
 return

这将在用户注销后清除缓存。

答案 1 :(得分:0)

我使用一个简单的脚本解决了该问题,该脚本在用户注销“清除”缓存时立即进行重新加载,这可能不是正确的方法,但对我有用,我将尝试继续搜索一种更好的方法。如果有人知道,请分享。