Django:urls.py中的问题 - 需要第二双眼睛

时间:2014-08-21 17:30:35

标签: regex django url

这可能只是一个愚蠢的粗心错误,但我找不到原因。其中,我在urls.py中定义了这种模式:

url(
    r'^edit_assessment/(\w+)/(\d{4})/(\w+)/$',
    'assessment',
    name='edit_assessment'
),

然而,以下网址未匹配:

http://localhost:8000/edit_assessment/hp23/2013/hunting-excursion/

有人可以让我免于这种令人痛苦的痛苦吗?

2 个答案:

答案 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