在Django URL中,正则表达式是什么,因此“foo.com/Bar”与“foo.com/bar”相同

时间:2013-02-12 22:43:49

标签: python regex django case-sensitive

我的问题是人们继续链接到example.com/FooBar,但实际链接是example.com/foobar。

我现在的正则表达式是......

SLUG = '(?P<slug>[\w\d-]+)'

我希望这是有道理的。我很惊讶我发现这个问题已经问到了。也许我的谷歌今天很弱。

2 个答案:

答案 0 :(得分:6)

正则表达式匹配两者。困难在于您可能会遇到如下问题:

obj = MyModel.objects.get(slug=slug)

哪个不匹配。

要解决此问题,请将查询更改为:

obj = MyModel.objects.get(slug=slug.lower())

答案 1 :(得分:0)

您的查询也可能像

obj = MyModel.objects.get(slug__icontains=slug)

icontains字段查找将执行不区分大小写的匹配