我试图让用户登录后立即自动登录。他们刚刚输入了他们所需的用户名和两个匹配的密码,我想授予访问该网站没有更多的摩擦。但是,我目前的身份验证和使用身份验证的用户对象进行登录的视图不起作用,即视图在注册后重定向到配置文件页面,但配置文件页面为@login_required
装饰器受保护,因此重定向是因为登录失败。我已广泛调试和环顾四周。Django身份验证后端和自动登录
我试过所有我能想到的诉诸第三方注册应用程序。人们提出后端存在问题或特殊之处,但我不明白为什么我无法在一个视图中注册,验证和登录。
views.py(相关部分)
@login_required
def user(request, user_id):
profile_user = User.objects.get(id=user_id)
context = RequestContext(request)
context['profile_user'] = profile_user
return render_to_response('profile.html', context)
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
new_user = authenticate(username = request.POST['username'],
password = request.POST['password1'])
if new_user is not None:
login(request, new_user)
context = RequestContext(request)
context['user_id'] = new_user.id
context['new_user'] = new_user
url = '/user/%s/' % new_user.id
return HttpResponseRedirect(url)
else:
form = UserCreationForm()
return render_to_response("registration/register.html", {'form': form},
context_instance=RequestContext(request))
你怎么处理?
我和你一样(authenticate()然后登录()),它在我的应用程序中正常工作。对不起,这不是很有用 - 但你绝对是在正确的轨道上。 –
这是令人心碎的新闻,因为我已经尝试过将所有事情都整理出来。它开始感觉到个人。 – KindOfGuy