アイテム名を使用して視聴者にわかりやすいURLを作成するDjangoサイトがあります。例えば:
/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のアンパサンドを処理するためのエスケープ、パターン、またはフィルターの正しい組み合わせは何ですか?また、アポストロフィが含まれている名前に遭遇することも予想されます。それらを処理するために私がすべきことはありますか?