使用特殊字符反转Django URL

时间:2012-07-04 10:07:51

标签: django url

除了宽空,正斜杠(/)和短划线( - )之外,我还需要为任何字符定义部件号。此外,我想要像/ part //

这样的网址

除了在我的模板中进行反向网址查询之外,我还试图让两个urls.py都能正常工作。

在urls.py中我定义了

url(r'^part/(?P<part_number>[A-Z0-9- ]{3,20})', 'inventory.views.part'),

在我的模板中我正在使用

{% url inventory.views.part part.part_number %}"

但是这会导致“渲染时捕获NoReverseMatch”异常,并且两个par号都带有斜杠和空格。

我在管理界面中看到空格部件编号正确显示(只是空格),带斜杠的部件编号在网址中显示为“_2F”编码。示例,部件号“1A17OE / JHA7660”在管理界面中编码为“/ part / 1A17OE _2F JHA7660 /”。

管理员网址如何实现这一目标,我该如何做同样的事情?

提前致谢, RAGGI

1 个答案:

答案 0 :(得分:1)

您应该使用urlencode来编码部件号中的空格。