当Url包含空格时,Django 1.7中的URL

时间:2014-12-05 20:29:37

标签: python django django-views django-urls

我有一个用户可以创建活动的应用。创建该事件后,会有一个指向事件的链接,该事件应该转到事件详细信息页面。

href看起来像这样:

<a href="/events/view/{{event.event_name}}">Event Details </a> 

所以示例网址如下所示:

http://www.example.com/events/view/Food%20Drive%20LA

%20给了我一个问题,所以我无法用空格渲染网址。我认为我的正则表达式在我的事件urls.py中是不正确的:

url(r'^view/(?P<event_name>[\w%20+])$', views.event_details, name='event_details'),

这是我的views.py:

def event_details(request, event_name):
    event_name = event_name
    #...
    return render_to_response('events/event_details.html')

这可能是什么问题?

2 个答案:

答案 0 :(得分:4)

不要担心URL中的空间百分比编码,在django url配置级别上继续将其视为通常的空间:

^view/(?P<event_name>[\w\s]+)$

另见:

答案 1 :(得分:2)

%20只是一个空格,因此您的正则表达式应该与空格字符匹配,而不是文字%20字符串。