我试图让用户在注册后立即自动登录。他们刚刚输入了他们想要的用户名和两个匹配的密码,我想授予对网站的访问权限,而不会有更多的摩擦。但是我当前使用身份验证的用户对象进行身份验证的视图不起作用,即视图在注册后重定向到个人资料页面,但个人资料页面@login_required
受装饰器保护,因此由于登录不成功而重定向。我已经广泛调试并环顾四周。
除了求助于第三方注册应用程序之外,我已经尝试了所有我能想到的方法。人们认为后端存在问题/特殊性或其他问题,但我就是不明白为什么我不能在一个视图中注册、验证和登录。
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))
你如何处理这个问题?