自定义 django-allauth password_reset_from_key 模板
Customizing django-allauth password_reset_from_key template
我正在使用 django 2.2.3,我正在覆盖 django-allauth 模板,在 password_reset_from_key 模板上我遇到了 NoReverseMatch 异常,
Reverse for 'account_reset_password_from_key' with no arguments not found. 1 pattern(s) tried: ['accounts/password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$']
因此它需要参数,并且该参数可能是重置密码期间生成的密钥。从 URL 模式中,'key' 是变量的名称
我试着用 'key' 传递它。
<form method="POST" action="{% url 'account_reset_password_from_key' key %}">
...
</form>
但是没有用。怎么了?
如果您不覆盖 allauth 视图,则使用 action_url
:
<form method="POST" action="{{ action_url }}">
这就是视图传递给模板的内容。
您没有提供该错误的来源,但如果我查找代码中使用了 url 名称的位置,则该名称未在模板中使用。
我猜你是在调用这个 url name 而不是将参数传递给它?
url(r"^password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$",
views.password_reset_from_key,
name="account_reset_password_from_key"),
PS:
作为覆盖 django 应用程序模板时的一般规则,我建议从原始模板开始(例如,将文件 allauth/templates/account/password_reset.html
或任何内容复制到您的 templates
目录(创建所有子目录)) ,然后更改您需要的部分 - 这样,如果出现问题,很容易回滚并找出原因。
根据经验,我知道 allauth 模板相当复杂,如果您不完全了解它们的工作原理,很容易破坏其中的功能。
我正在使用 django 2.2.3,我正在覆盖 django-allauth 模板,在 password_reset_from_key 模板上我遇到了 NoReverseMatch 异常,
Reverse for 'account_reset_password_from_key' with no arguments not found. 1 pattern(s) tried: ['accounts/password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$']
因此它需要参数,并且该参数可能是重置密码期间生成的密钥。从 URL 模式中,'key' 是变量的名称
我试着用 'key' 传递它。
<form method="POST" action="{% url 'account_reset_password_from_key' key %}">
...
</form>
但是没有用。怎么了?
如果您不覆盖 allauth 视图,则使用 action_url
:
<form method="POST" action="{{ action_url }}">
这就是视图传递给模板的内容。
您没有提供该错误的来源,但如果我查找代码中使用了 url 名称的位置,则该名称未在模板中使用。
我猜你是在调用这个 url name 而不是将参数传递给它?
url(r"^password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$",
views.password_reset_from_key,
name="account_reset_password_from_key"),
PS:
作为覆盖 django 应用程序模板时的一般规则,我建议从原始模板开始(例如,将文件 allauth/templates/account/password_reset.html
或任何内容复制到您的 templates
目录(创建所有子目录)) ,然后更改您需要的部分 - 这样,如果出现问题,很容易回滚并找出原因。
根据经验,我知道 allauth 模板相当复杂,如果您不完全了解它们的工作原理,很容易破坏其中的功能。