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
?是的,对不起,我对此不是很清楚