0

我有用“-”字符替换空格的网址。所以我做了一个这样的url正则表达式:

url(r'^(?P<item_url>(\w+-?)*)/$', 'detail'),

我的观点:

def detail(request, item_url):
   i = get_object_or_404(Page, url=item_url,published=True)
   return render_to_response('item/detail.html', {'item':i},
       context_instance=RequestContext(request))

不幸的是,这让 django 非常忙于处理超过 20 个字符的 url。该过程挂起 20 秒 - 1 分钟,然后返回正确的结果。这是基于我使用的错误正则表达式吗?

4

1 回答 1

1

尝试以下网址模式:

url(r'^(?P<item_url>[\w-]+)/$', 'detail'),

[\w-]+将匹配一个或多个字母数字字符或连字符。

于 2012-07-26T13:32:07.540 回答