Django URL反序列化问题

时间:2015-08-22 10:44:52

标签: regex django url

我的urls.py中有以下路线:

url(r'^tag/(?P<tag>[-\w]+)/$', render_search, name="search_by_tag"),

所以,我在那里传递了一个标记并得到了一个结果,例如/tag/python//tag/django/

但是当我传递/tag/C++/之类的内容时失败了,当我传递编码值时它甚至失败了:/tag/C%2B%2B/

如何解决这个问题并接受后端的编码值?

1 个答案:

答案 0 :(得分:2)

关于正则表达式的全部内容。您提供的正则表达式模式只接受字母,数字,下划线和&#39; - &#39;。要接受所有可能的字符(不包括&#39; /&#39;和&#39;?&#39;),你应该像这样制作正则表达式:

url(r'^tag/(?P<tag>[^/?]+)/$', render_search, name="search_by_tag"),

但这不是一个好主意,你应该更好地重新标记你的标签名称,并在网址中使用那个slugified形式。