我有一个Django站点,它使用项目名称创建对查看器友好的url。例如:
/item/DeluxeWidget/
我有一件物品的名字里有一个和号:
^{pr2}$和号把东西扔了。如果我使用{小工具名称|修正了“与号”},与号将作为&
进行转义,但在URL模式中仍然没有选择:
url(r"^widget/(?P<name>[0-9a-zA-Z&,. -]+)/$", 'site.views.widget' ),
在视图中,我使用捕获的名称来做
Widget.objects.get(name=name)
什么是转义、模式或过滤器的正确组合来处理URL中的和号?我也希望能遇到带撇号的名字。我也该做些什么来处理这些问题吗?在
一般来说,最好不要这样做,并遵循一种这样的模式-让我们用这个页面作为一个例子(
http://stackoverflow.com/questions/13212960/how-do-i-handle-ampersands-in-django-urls
)然后您可以:
然后:
{{ widget.name|fix_ampersands }}
变成{Widget.objects.get(name=name)
变成{考虑使用一个SlugField,它可以自动填充另一个适合在url中使用的字段的清理版本。在
相关问题 更多 >
编程相关推荐