Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅允许经过身份验证的用户访问django中的某些页面_Python_Django - Fatal编程技术网

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

Python 仅允许经过身份验证的用户访问django中的某些页面,python,django,Python,Django,我一直在努力做到只有登录的用户才能访问某个页面,但我似乎无法让它正常工作 这是我的观点 @login_required def course(request): data = Students.objects.all() context = {'data', data} if not request.user.is_authenticated(): return HttpResponseRedirect('/') else: ret

我一直在努力做到只有登录的用户才能访问某个页面,但我似乎无法让它正常工作

这是我的观点

@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 %}
{%if user.u经过身份验证%}
课程页面!
{%else%}
{%endif%}

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

在您的视图中,尝试使用以下内容将用户传递给响应:

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

这应该足够了。如果匿名用户仍然可以访问该视图函数,则该用户可能已通过身份验证

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

你确定你没有经过身份验证吗?尝试删除localhost的Cookie并再次打开视图。

因此,要澄清的是,当您说“我在views.py文件中尝试的第一种方式总是让我查看页面”时,您的意思是它正在呈现
login/course.html
?是的,对不起,我对此不是很清楚