Django Url 在创建用户时没有正确重定向
Django Url not redirecting correctly on user creation
我将用户注册和登录模板设置为将信息发送到同一视图(详细信息)。他们之前都工作正常,但是现在用户创建的重定向不再转到正确的 URL (http://127.0.0.1:8000/accounts/login/?next=/accounts/21/) 添加 URL 的 "accounts/login?next=" 部分由于某种原因,我不明白它是从哪里来的,因为它以前不存在。
除非另有说明,否则我使用的是据点,它使每个视图都显示为 login_required。
我发现一些关于 LOGIN_URL 的帖子需要在 setting.py 或 next
键中设置。但是,这之前工作正常,所以我认为这不是问题所在。如果您需要发布更多代码,请告诉我,我会提供。
谢谢,
-我要打的路线是
url(r'^accounts/(?P<user_id>\d+)/$', views.detail, name='detail')
-我的注册视图如下
@public
def register(request):
if request.method == 'POST':
form = EmailUserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
playthrough = PlayThrough(user_id=new_user.id)
playthrough.save()
request.session['user_id'] = new_user.id
return HttpResponseRedirect('/accounts/{}/'.format(new_user.id))
else:
form = EmailUserCreationForm()
return render(request, 'dep_server/register.html', {
'form': form,
})
-这是应该呈现用户信息的视图
def detail(request, user_id):
if request.session['user_id'] == int(user_id):
user = EmailUser.objects.get(id=user_id)
module_list = ModuleRef.objects.all()
return render(request, 'dep_server/detail.html', {
'user': user,
'module_list': module_list
})
else:
return HttpResponseRedirect('/accounts/auth/')
我发现了问题,我没有在创建时登录用户。这就是为什么登录有效而注册无效的原因。下面是我添加到寄存器视图的代码,它可以正常工作。
user = authenticate(
email = form.cleaned_data['email'],
password = form.cleaned_data['password2']
)
login(request, user)
我将用户注册和登录模板设置为将信息发送到同一视图(详细信息)。他们之前都工作正常,但是现在用户创建的重定向不再转到正确的 URL (http://127.0.0.1:8000/accounts/login/?next=/accounts/21/) 添加 URL 的 "accounts/login?next=" 部分由于某种原因,我不明白它是从哪里来的,因为它以前不存在。
除非另有说明,否则我使用的是据点,它使每个视图都显示为 login_required。
我发现一些关于 LOGIN_URL 的帖子需要在 setting.py 或 next
键中设置。但是,这之前工作正常,所以我认为这不是问题所在。如果您需要发布更多代码,请告诉我,我会提供。
谢谢,
-我要打的路线是
url(r'^accounts/(?P<user_id>\d+)/$', views.detail, name='detail')
-我的注册视图如下
@public
def register(request):
if request.method == 'POST':
form = EmailUserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
playthrough = PlayThrough(user_id=new_user.id)
playthrough.save()
request.session['user_id'] = new_user.id
return HttpResponseRedirect('/accounts/{}/'.format(new_user.id))
else:
form = EmailUserCreationForm()
return render(request, 'dep_server/register.html', {
'form': form,
})
-这是应该呈现用户信息的视图
def detail(request, user_id):
if request.session['user_id'] == int(user_id):
user = EmailUser.objects.get(id=user_id)
module_list = ModuleRef.objects.all()
return render(request, 'dep_server/detail.html', {
'user': user,
'module_list': module_list
})
else:
return HttpResponseRedirect('/accounts/auth/')
我发现了问题,我没有在创建时登录用户。这就是为什么登录有效而注册无效的原因。下面是我添加到寄存器视图的代码,它可以正常工作。
user = authenticate(
email = form.cleaned_data['email'],
password = form.cleaned_data['password2']
)
login(request, user)