我正在使用django的url标签从一个视图移动到另一个视图:
<a href = {% url wiki_view item %}>Read more here</a>
对于大多数“项目”,这非常有效。但是我有一个带有/字符的“项目”:Sci-Fi / Fantasy。在这种情况下,我收到错误
渲染时捕获NoReverseMatch:反向'wiki_view',参数'(u'Sci-fi / Fantasy',)'和关键字参数'{}'未找到。
我的urls.py定义如下:
url(r'^wiki/page/(?P<page_title>[^/]*)/$', views.wiki_view, name = 'wiki_view'),
有没有一种方法可以使用这样的“/”字符?
答案 0 :(得分:3)
使用urlencode
过滤器作为Ignacio建议,但默认情况下,您仍然会收到一个问题,即过滤器会假定/
保持不变。您可以通过以下方式使用过滤器来解决此问题(如果您当前使用的是dev版本):
item|urlencode:""
Django docs中解释了这一点。
答案 1 :(得分:1)
首先通过urlencode
传递参数。
答案 2 :(得分:0)
您应该在URL中使用Djanog的slugify
。它用URL友好的字符和人类可读的替代字符替换了类似的字符。
from django.template.defaultfilters import slugify