【发布时间】:2012-10-24 03:48:24
【问题描述】:
我有一个 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 似乎是我正在尝试做的理想工具。
标签: python django url django-urls