如何重定向到'http://127.0.0.1:8000/配置文件/'而不是'http://127.0.0.1:8000/帐户/登录/?下一步=/profile/'

2024-09-27 07:24:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编辑用户配置文件。用户在上编辑表单配置文件.html当他们提交时,他们应该被重定向回配置文件.html(同一页)。即使我更改了我的LOGIN\u REDIRECT_URL,我仍然重定向到accounts/LOGIN(默认值)。在

在视图.py在

@login_required
def profile(request):
    user = request.user

    if request.method == "POST":
        signupform = SignUpForm(data=request.POST, instance=request.user)
        if signupform.is_valid():
              signupform.save()
              return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
    return render(request, 'profile.html', "context stuff here")

在设置.py在

^{pr2}$

在网址.py在

url(r'^profile/$', views.profile, name='profile')

如何成功重定向到配置文件.html?在


Tags: 用户pyurl编辑ifrequesthtml配置文件
3条回答

你能做到的

@login_required
#...
   if signupform.is_valid():
          signupform.save()
          return redirect('profile') # or 'app_name:profile' if you have app_name before your urlpatterns.

您所需的登录名将重定向到settings.LOGIN\u URL在

所以在您的设置中添加LOGIN_URL = '/login/'

如果用户已登录,则视图将完美工作。在

除此之外,(模板级) 你也可以在html中检查身份验证

^{pr2}$

{cd1>但您没有登录}。重定向到登录页面。如果您登录,则重定向到/profile。在

在下面的代码中,尝试用应用程序的名称(与您在settings.pyINSTALLED APPS部分中声明的应用程序名称相同)替换APPNAME

return HttpResponseRedirect(reverse('APPNAME:profile'))

别忘了在页面顶部导入

from django.urls import reverse

相关问题 更多 >

    热门问题