gpt4 book ai didi

django - 使用带命名空间的参数反转 'password_reset_done'

转载 作者:行者123 更新时间:2023-12-04 17:06:39 24 4
gpt4 key购买 nike

在 Django 1.8 下。我向我的应用程序添加了一个命名空间,但现在我遇到了注册页面的问题。

网址: http://127.0.0.1:8000/accounts/password_reset/

在 myapp/urls.py 中:

  ...
from django.contrib.auth.views import password_reset, password_reset_done
...

# include registration app urls
url(r'^accounts/', include('registration.urls')),


url(r'^accounts/password_reset/$', password_reset,
{'template_name': 'registration/password_reset.html'},
name='reset-password'),

url(r'^accounts/password_reset_success/$', password_reset_done,
{'template_name': 'registration/password_reset_done.html'},
name="password_reset_done"),

错误:
NoReverseMatch at /accounts/password_reset/
Reverse for 'password_reset_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

在 project/urls/myapp.py 中:
url(r'^', include('myapp.urls',
namespace='myapp', app_name='myapp')),

在 django.contrib.auth.views password_reset 中:

如果我更换
if post_reset_redirect is None:
post_reset_redirect = reverse('password_reset_done')
else:
post_reset_redirect = resolve_url(post_reset_redirect)
if request.method == "POST":

** 和 **
if post_reset_redirect is None:
post_reset_redirect = reverse('myapp:password_reset_done')
else:
post_reset_redirect = resolve_url(post_reset_redirect)
if request.method == "POST":

有用。

所以我想我必须将命名空间传递给某个地方的注册网址。

最佳答案

您可以设置自定义 post_reset_redirect在您的 URL 配置中包含 password_reset 看法:

url(r'^accounts/password_reset/$', password_reset,
{'template_name': 'registration/password_reset.html', 'post_reset_redirect': reverse_lazy('myapp:password_reset_done')},
name='reset-password'),

但是,我认为您会发现使用命名空间也需要更改密码重置过程的其他部分(例如电子邮件模板)。最简单的解决方案是不要为此应用程序使用命名空间。

关于django - 使用带命名空间的参数反转 'password_reset_done',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50764091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com