Python Django 1.11密码重置令牌的生成发生意外更改

Python Django 1.11密码重置令牌的生成发生意外更改,python,django,Python,Django,我已经成功地生成了密码重置链接,并使用django内置密码重置将它们发送到邮件,并且在需要的地方使用了我自己的模板。 以上就是我在测试项目中实现它的情况(只是为了不破坏我的实际项目)。但当我将粘贴的代码从测试项目复制到实际项目时,重置密码链接的生成发生了变化 Token在我的测试项目中工作时 Token在我的实际项目中工作时 MQ和Mg发生了变化/ 我的问题是: 1) 我无法匹配URL中的正则表达式并显示我的模板,而不是正在显示的django默认模板 url(r'^reset/pass

我已经成功地生成了密码重置链接,并使用django内置密码重置将它们发送到邮件,并且在需要的地方使用了我自己的模板。

以上就是我在测试项目中实现它的情况(只是为了不破坏我的实际项目)。但当我将粘贴的代码从测试项目复制到实际项目时,重置密码链接的生成发生了变化

Token在我的测试项目中工作时


Token在我的实际项目中工作时


MQ和Mg发生了变化/
我的问题是:
1) 我无法匹配URL中的正则表达式并显示我的模板,而不是正在显示的django默认模板

url(r'^reset/password/success/$', AuthHandler().reset_success, name="auth.success"),
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$',AuthHandler().reset_password, name="password_reset_confirm"),
url(r'^reset/done/$', auth_views.password_reset_complete,name="auth.complete"),
问题是我无法进入reset_password功能页面,因此无法显示我的模板,其中显示的是django default。但在我的测试项目中工作时,我能够做到(在url的正则表达式中使用“-”)


2) 为什么Django会生成两种完全不同的链接类型,一种有/另一种没有。(据我所知,其中不应包含哈希)

这个正则表达式可以吗

r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$'
r'^reset/(?P[0-9A-Za-z_ \-])/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$'

从这个博客:

我不想成为一个对你的问题提出建议而不是答案的人,但是。。。您可以尝试django密码重置。我使用了和,运行起来非常简单。我倾向于同意这样一种观点,即散列,至少是URL中使用的散列,不应该包含
/
。也许你可以把这个问题带到Django邮件列表,或者提交一张关于它的罚单。是的,在我调整表单以重置它之后,它正在使用上面的正则表达式,但我主要的疑问是为什么它会生成两个不同的正则表达式!!还有hash中的“/”真的不知道。
r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$'