django urlpattern错了吗?需要接受2个不同的参数

时间:2016-10-14 17:04:15

标签: python django python-2.7

我正在为一个小型游戏构建一个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和特殊令牌,因此我们知道我们可以重置/更改密码。

1 个答案:

答案 0 :(得分:0)

令牌的正则表达式模式:

(?P<token>/?$)

将匹配结束网址的可选正斜杠/。换句话说,它将匹配/members/ChangePassword/11//members/ChangePassword/11//

您需要进行修改,以便捕获令牌中的字符。由于它看起来像base64编码,其中包含[A-Z][a-z][0-9][+/=],您应该可以按如下方式进行编辑:

(?P<token>[A-Za-z0-9+/=]+$)