我正在为一个小型游戏构建一个django应用程序,我正在构建它以进行集成。我没有重新编写我的应用程序以使用django的会员系统,而是将我的小型游戏登录系统添加到django网站。我的问题在于我的ChangePassword网址模式。
url(r'^ChangePassword/(?P<userID>[0-9]+)/(?P<token>/?$)', changepassword, name='Change Password'),
尝试转到页面时,我在终端中收到以下错误。
未找到:/ members / ChangePassword / 11 / aw7MdMn4DaFoPp6W4P + c4IZWXRAF9g == [14 / Oct / 2016 16:53:53]&#34; GET / members / ChangePassword / 11 / aw7MdMn4DaFoPp6W4P + c4IZWXRAF9g == HTTP / 1.1&#34; 404 3294
我错过了一个正则表达式,还是我错了?我已经在这里查看用户文档和问题并找到了解决方案。它需要接受userID和特殊令牌,因此我们知道我们可以重置/更改密码。
答案 0 :(得分:0)
令牌的正则表达式模式:
(?P<token>/?$)
将匹配结束网址的可选正斜杠/
。换句话说,它将匹配/members/ChangePassword/11/
或/members/ChangePassword/11//
。
您需要进行修改,以便捕获令牌中的字符。由于它看起来像base64
编码,其中包含[A-Z][a-z][0-9][+/=]
,您应该可以按如下方式进行编辑:
(?P<token>[A-Za-z0-9+/=]+$)