我有一个 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 中的 & 符号?我也希望遇到带有撇号的名字。我也应该做些什么来处理这些吗?