我正在开发一个网站,我正在尝试做的是,每当用户输入他的电子邮件来重置密码,而不是使用Django中的内置tokens.py模块时,我已经实现了我自己的模块使用来自Django的加密签名,生成一个唯一的令牌,然后可以在URL中传递并呈现所需的视图。
我创建的网址映射是
url(r'^set_password/(?P<uid64>[0-9A-Za-z_\-]+)/(?P<token>[a-zA-Z0-9_.-]{2}-[a-zA-Z0-9_.-]{6}-[a-zA-Z0-9_.-]{27})/$','accounts.views.set_password_confirm',name='set_password_confirm')
我创建的正则表达式在用于分隔标记的分隔符为“ - ”时工作正常,但是当我尝试使用除“ - ”之外的分隔符时,正则表达式不起作用。
示例网址为:http://mywebsite.com/accounts/set_password/MTE/PQ-1aDbis-PNTp8XOiTASTWhcg1Er9URnCOYs/
我使用' - '分隔了令牌'PQ-1aDbis-PNTp8XOiTASTWhcg1Er9URnCOYs',我想要的是如果我使用除' - '之外的其他分隔符,则正则表达式应该有效。
有人可以建议解决方案吗?
答案 0 :(得分:2)
您可以明确说明分隔符并在方括号内列出可能的分隔符:
(?P<token>[a-zA-Z0-9_.-]{2}[\-_][a-zA-Z0-9_.-]{6}[\-_][a-zA-Z0-9_.-]{27})
此处我们将分隔符设置为-
或_
。