具體來說,在認證和重定向之後,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