python - Django 密码重置与应用程序名称

标签 python django

我正在使用 auth View 来重置 django 中的密码。由于我已在用户应用程序中声明此 View 并使用 appname 作为 URL,因此出现错误。我知道我应该更改 django 预构建模板中的 URL,但我不知道覆盖此类内容的最佳方法。


这是我的用户应用程序的 URL.py:

app_name = 'users'

urlpatterns = [
    path('register/', views.register, name='register'),
    path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
    path('password-reset/',
         auth_views.PasswordResetView.as_view(
             template_name='users/password_reset.html'
         ),
         name='password_reset'),
    path('password-reset/done/',
         auth_views.PasswordResetDoneView.as_view(
             template_name='users/password_reset_done.html'
         ),
         name='password_reset_done'),
    path('password-reset-confirm/<uidb64>/<token>/',
         auth_views.PasswordResetConfirmView.as_view(
             template_name='users/password_reset_confirm.html'
         ),
         name='password_reset_confirm'),
    path('password-reset-complete/',
         auth_views.PasswordResetCompleteView.as_view(
             template_name='users/password_reset_complete.html'
         ),
         name='password_reset_complete'),]

这是错误:

NoReverseMatch at /users/password-reset/
Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.

这是它所引用的行:

{{ 协议(protocol) }}://{{ 域 }}{% url 'password_reset_confirm' uidb64=uid token=token %}

最佳答案

也许您需要添加模块名称才能访问它,如下所示:

{% url 'users:password_reset_confirm' %}

https://docs.djangoproject.com/en/3.1/topics/http/urls/#reversing-namespaced-urls

关于python - Django 密码重置与应用程序名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64451253/

相关文章:

python - 将比率字段插入 Pandas 系列

python - sqlite3.connection.__init__ 方法记录在哪里?

python - Django 模板语言中是否有 isfile() 或 isdir() 的等效项?

python - Django:调用元类基础时出错

python - Django + SWFUpload 的代码示例?

python - 如何为所有模型添加相同的保存方法

python - Django 国际化 (i18n) lint 检查器?告诉我什么还没有 _( )'ed or {% trans %}' ed

python - 未找到“pyramid-debugtoolbar”分布并且是必需的

Django Rest JWT 使用用户名或电子邮件登录?

python - 如何在Python/Django中检查字段的值是否已被删除