我有一个Django网站,它使用项目名称来创建适合浏览器的网址。例如:如何处理Django URL中的&符号?
/item/DeluxeWidget/
我有在名称中的符号的项目:
/item/Red & Blue Widget/
的符号抛出的事情了。如果我使用{{widget.name | fix_ampersands}},连字符将被转义为&
,但它仍然没有在URL模式拿起:
url(r"^widget/(?P<name>[0-9a-zA-Z&,. -]+)/$", 'site.views.widget'),
在我使用捕捉名字做视图
Widget.objects.get(name=name)
在URL中处理&符号的转义,模式或过滤器的正确组合是什么?我也希望在其中使用带撇号的名字。我还有什么要处理这些吗?
所以简短的回答是“不要”。无论如何,&符号都不属于URL。感谢您的建议 - SlugField似乎是我尝试做的理想工具。 –