我正在尝试让用户在注册后自动登录。他们刚刚输入了他们想要的用户名和两个匹配的密码,我想授予访问该网站的权利,而不再有任何摩擦。但我当前使用身份验证后使用authenticate的用户对象登录的视图不起作用,即视图在注册后重定向到配置文件页面,但配置文件页面被@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))
你是如何处理的?
答案 0 :(得分:0)
你可以通过以下方式使其发挥作用: