具体来说,在认证和重定向之后,request.user是匿名用户。Django:重定向后request.user未设置
登录(查看功能)
def login(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
#django.contrib.auth.login
Login(request, form.get_user())
str = reverse('cm_base.views.index')
return HttpResponseRedirect(str)
else:
# Their password/email combination must have been incorrect
pass
else:
form = LoginForm()
return render_to_response('cm_base/login.html',
{"DEBUG": True,
'form' : form
},
context_instance=RequestContext(request))
在索引视图
,我除去login_required装饰并测试了request.user对象
def index(request):
test = request.user.is_authenticated()
return render_to_response('cm_base/index.html',
{"DEBUG": True,
"user": request.user,},
context_instance=RequestContext(request))
测试返回false。
修复
我最终只是直接调用索引视图。当我调用HttpResponseRedirect时,我仍然对为什么用户对象丢失感到困惑。
def login(request):
if request.method == 'POST':
form = LoginForm(request.POST) # Not shown in this example
if form.is_valid():
Login(request, form.get_user())
str = reverse('cm_base.views.index')
return index(request)
else:
# Their password/email combination must have been incorrect
pass
else:
form = LoginForm()
添加您的整个视图逻辑,有没有办法告诉你的形式和登录方法是什么样子从片段您已发布。 – 2013-04-20 10:39:21
在验证用户身份后'request.user.is_authenticated()'在登录视图中返回TRUE吗? – Rohan 2013-04-20 11:01:48
您可以在我们的pastebin.com代码片段中与我们分享您的表单和登录视图吗?谢谢。 – 2013-04-20 11:33:16