我的urls.py
中有以下路线:
url(r'^tag/(?P<tag>[-\w]+)/$', render_search, name="search_by_tag"),
所以,我在那里传递了一个标记并得到了一个结果,例如/tag/python/
,/tag/django/
但是当我传递/tag/C++/
之类的内容时失败了,当我传递编码值时它甚至失败了:/tag/C%2B%2B/
如何解决这个问题并接受后端的编码值?
答案 0 :(得分:2)
关于正则表达式的全部内容。您提供的正则表达式模式只接受字母,数字,下划线和&#39; - &#39;。要接受所有可能的字符(不包括&#39; /&#39;和&#39;?&#39;),你应该像这样制作正则表达式:
url(r'^tag/(?P<tag>[^/?]+)/$', render_search, name="search_by_tag"),
但这不是一个好主意,你应该更好地重新标记你的标签名称,并在网址中使用那个slugified形式。