我想匹配一个包含令牌的网址,例如http://example.com/success/dm00cmw1KnltYkAyJmRfKGdjJGc4\n
。但是当我尝试使用以下url模式反向匹配它时出现错误
url(r'success/(?P<token>.*)/$', 'payments_system.views.success_result_view', name='success')
我收到以下错误:
Reverse for 'success' with arguments '()' and keyword arguments '{'token': 'dm00cmw1KnltYkAyJmRfKGdjJGc4\n'}' not found. 1 pattern(s) tried: ['success/(?P<token>.*)/$']
我也试过\ w +或。+但是我得到了同样的错误。我怎么能在网址上的每个角色?
答案 0 :(得分:0)
\n
是一个换行符。您需要转义反斜杠,即\\n
,将其视为文字反斜杠,因为换行符在网址中无效,且.*
与其不匹配。
最好是禁止使用此类字符,并将令牌限制为例如[A-Za-z0-9]
。