aut*_*con 7 authentication 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))
Run Code Online (Sandbox Code Playgroud)
在索引视图中,我删除了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))
Run Code Online (Sandbox Code Playgroud)
测试返回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()
Run Code Online (Sandbox Code Playgroud)
您使用什么身份验证后端?如果它不是 ModelBackend,请确保您的 get_user 方法正确。听起来好像 auth 中间件正在发送与您在 get_user 方法中查找的标识符不同的标识符(例如 pk 而不是用户名)。
| 归档时间: |
|
| 查看次数: |
3360 次 |
| 最近记录: |