首页 > 解决方案 > 当用户在 django 中注销时,如何拒绝访问上一页?

问题描述

我是 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'),

标签: pythondjangodjango-templatesdjango-viewsdjango-1.8

解决方案


您可以使用隐藏模板,

{% 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

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


推荐阅读