如何在Django URL中处理&符号?

Jas*_*ion 2 python django url django-urls

我有一个Django站点,它使用项目名称来创建查看器友好的URL.例如:

/item/DeluxeWidget/
Run Code Online (Sandbox Code Playgroud)

我有一个项目名称中有&符号:

/item/Red & Blue Widget/
Run Code Online (Sandbox Code Playgroud)

&符号抛出了一些东西.如果我使用{{widget.name | fix_ampersands}},&符号将被转义,&但仍未在网址格式中获取:

url(r"^widget/(?P<name>[0-9a-zA-Z&,. -]+)/$", 'site.views.widget' ),
Run Code Online (Sandbox Code Playgroud)

在视图中我使用捕获的名称来做

Widget.objects.get(name=name)
Run Code Online (Sandbox Code Playgroud)

在URL中处理&符号的转义,模式或过滤器的正确组合是什么?我也期望在其中遇到带撇号的名字.有什么办法可以处理吗?

Mic*_*ior 8

考虑使用SlugField,它可以自动填充适用于URL的另一个字段的清理版本.