Py学习  »  问与答

login_required不起作用,为什么?

HelloSam • 9 年前 • 4679 次点击  
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
 
4679 次点击  
文章 [ 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 年前

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