1

我有这个模式:

url(r'^(?P<slug>.+)-prod(?P<product_id>[0-9]+).html$', 'product_detail', name='product_detail', )

当我有以下情况时它工作正常:

"some unicode characters"-prod"some numbers".html

但是当我在“一些 unicode 字符”中输入“#”时,它不匹配。Python/django/re 将字符串截断为#的第一个字符

例如,如果我有:

"some unicode # string"-prod"some numbers".html

django 将搜索匹配

"some unicode "

有没有其他人有同样的问题?

4

1 回答 1

3

#是一个特殊字符,因为它涉及 URL。你不应该在 URL 中使用它,除非它在字面上表示页面中的锚点。如果你坚持使用它,它应该是 urlencoded(即%23),你甚至应该能够让 Django 的 urlresolver 匹配 urlencoded 版本。

于 2012-06-13T19:47:44.647 回答