Django URL 正则表达式"is not a valid regular expression"错误



我在配置以下url时遇到了一些问题。我希望它能够匹配一个以类别开始,然后以段塞结束的页面,例如:

/category1/post1/
/category2/post2/
/category3/post3/
/category1/post4/
/category2/post5/

我尝试了很多不同的方法,但都没有成功。。。我总是得到一个"不是有效的正则表达式"的错误。这就是我认为它应该如何工作:

url(r'^(?P<category1|category2|category3>[w-]+)/(?P<slug>[w-]+)/$', blog_post, name = 'blog_post'),

我是regex的新手,正在努力学习,所以如果能对这一点提供任何解释,我将不胜感激:)

您的模式不正确;你把替代价值观放错了地方。您将它们放在组的名称中:

(?P<category1|category2|category3>...)

将它们放在名称应该匹配的部分:

(?P<category>category1|category2|category3)

进行完整注册:

url(r'^(?P<category>category1|category2|category3)/(?P<slug>[w-]+)/$', blog_post, name='blog_post'),

我假设您的blog_post可调用文件看起来像:

def blog_post(category, slug):

相关内容

最新更新