【问题标题】:Django's password_reset keeps returning errorDjango的password_reset不断返回错误
【发布时间】:2018-03-25 15:20:36
【问题描述】:

我正在尝试使用 Django 内置的 password_reset 视图,到目前为止,我遵循了一个小教程,但就我而言,而且我发现还有很多其他人的,它不起作用,并且每次我访问特定的 url,它返回:“reverse for 'reset_password' not found. 'reset_password' 不是有效的视图函数或模式名称。”。我寻找了各种解决方案,但唯一真正有效的是将带有 password_reset 和 password_reset_confirm 的 url 移动到主 urls.py,而不是我的子目录中的那个。尽管如此,如果我访问 url “raw”,也就是只输入它而不是通过链接渲染页面等等,它确实可以工作,但是如果我尝试通过一些实际链接访问它,它会返回我得到的相同错误从一开始。

在我的 main/urls.py 中:

url(r'^reset_password/$', password_reset, name='password_reset'),
url(r'^reset_password/done/$', password_reset_done, name='password_reset_done'),

^这个没有任何作用,它只是返回那个错误。我检查了可能的拼写错误或错误的声明,但没关系。

就像我说的,如果我将这两个 url 放入 urls.py 而不是 main/urls.py,它确实有效。但后来我尝试在模板中实现一个链接,如下所示:{% url 'reset_password' %}。但它会返回该错误。

【问题讨论】:

  • 我会尝试更具体。最初,我不想在主应用程序 urls.py 中使用这两个 url,而是在我的子目录中的 urls.py 中使用,称为 main。问题是,它不起作用,并且总是会打印该错误消息。在 main/urls.py 中使用它们确实是我的第一次尝试。然后我发现如果我将这两个 url 放在我的主应用程序 urls.py 中,它确实有效。我的主要问题是我不能在 main/urls.py 中使用它们。

标签: django passwords


【解决方案1】:

您的网址名称是password_resetpassword_reset_done

所以你会在模板中这样称呼它们 -

{% url 'password_reset' %}

{% url 'password_reset_done' %}

请注意,您在 urls.py 中定义的名称与您在模板中使用的名称不同。正因为如此,reverse 无法找到正确的 url。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多