这可能只是一个愚蠢的粗心错误,但我找不到原因。其中,我在urls.py中定义了这种模式:
url(
r'^edit_assessment/(\w+)/(\d{4})/(\w+)/$',
'assessment',
name='edit_assessment'
),
然而,以下网址未匹配:
http://localhost:8000/edit_assessment/hp23/2013/hunting-excursion/
有人可以让我免于这种令人痛苦的痛苦吗?
答案 0 :(得分:2)
“狩猎 - 游览”中的连字符与\w
不匹配。您应该像Avinash所提到的那样将其更改为[-\w]
。你的模式是正确的,它不应该包括协议和主机名,因为Django在匹配之前将它们删除。
为了将来参考,http://www.pyregex.com/是测试URL模式或任何其他Python正则表达式的绝佳工具。
答案 1 :(得分:0)
^edit_assessment
假设字符串edit_assessment
位于开头。尝试使用下面的正则表达式来匹配上面提到的包含字符串edit_assessment
的URL链接,并且还需要将最后一个\w+
放在带有-
的字符类中,以便它匹配字符串{ {1}}
hunting-excursion