仅允许经过身份验证的用户访问django中的某些页面

时间:2016-04-16 14:43:04

标签: python django

我一直试图让它成为只有被记录的用户可以访问页面但我似乎无法让它工作。

这是我的views.py

@login_required
def course(request):
    data = Students.objects.all()
    context = {'data', data}
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/')
    else:
        return render_to_response('login/course.html', context)

我还试图通过

来限制访问
{% if user.is_authenticated %}
    <h1>Course Page!</h1>
{% else %}
    <a href="/">login</a>
{% endif %}

我在views.py文件中尝试的第一种方法总是让我看到页面,第二种方式总是只显示登录链接。它可能很小但我似乎无法解决这个问题。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

这应该足够了。如果匿名用户仍然可以访问该视图功能,则可以对用户进行身份验证。

@login_required(login_url='/')
def course(request):
    data = Students.objects.all()
    return render(request, 'login/course.html', {'data': data})

您确定未经过身份验证吗?尝试删除localhost的cookie并再次打开视图。

答案 1 :(得分:0)

在您看来,尝试通过以下内容传递用户:

return render_to_response('login/course.html', {'context': context, 'user': request.user})