社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

login_required不起作用,为什么?

HelloSam • 9 年前 • 4616 次点击  
def login(request):
    if request.method == 'GET':
        form = LoginForm()
        return render_to_response('login.html',RequestContext(request,{'form': form,}))
    else:
        form = LoginForm(request.POST)
        if form.is_valid():
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            user = auth.authenticate(username = username, password = password)
            if user is not None and user.is_active:
                # Correct password, and the user is marked "active"
                auth.login(request, user)
                # Redirect to a success page.
                #return render_to_response('equipmentdemo1.html',RequestContext(request))
                return HttpResponseRedirect(reverse('equipmentapp.views.reporttable',kwargs={}))
            else:
                return render_to_response('login.html',RequestContext(request,{'form':form,}))
        else:
            # Show an error page
            return render_to_response('login.html',RequestContext(request,{'form':form,}))

以上是我的登录函数,equipmentapp.views.reporttable是登录后的目标网页的视图函数。代码如下:

@login_required
def reporttable(request):
    report_table = RepairReport.objects.all()
    return render_to_response('reporttable.html', RequestContext(request, {'report_table': report_table, }))

我的想法是:reporttable对应的网页只有通过登录界面的认证,才能访问,不然,即使你输入目标网页的网址,也没有用。 但现在的 问题是,使用了login_required后,没有达到效果。请问问题在哪?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1203
 
4616 次点击  
文章 [ 4 ]  |  最新文章 9 年前
shen_gan
Reply   •   1 楼
shen_gan    9 年前

@HelloSam 浏览器中删除cookie,在你删除浏览器数据的时候可以看到。

在django里面有没有这样的设置我也不知道,但是我不建议你这么做

不过,我觉得你可以添加一个退出登录的链接,然后实现它

HelloSam
Reply   •   2 楼
HelloSam    9 年前

@shen_gan 真的是!用 另外一个没登陆过的浏览器,是可以得 。怎么删除浏览器cookie?可以在django项目里面 设置:每次登陆后 浏览器都会删除cookie吗?

shen_gan
Reply   •   3 楼
shen_gan    9 年前

@shen_gan 想到一种可能,就是你曾经登录过 admin 后台,可以换个浏览器获取删除此浏览器的 cookie ,然后刷新看看

shen_gan
Reply   •   4 楼
shen_gan    9 年前

看起来你这个应该没有问题~~~