Django通过URL conf传递多个单词

时间:2015-04-20 20:26:45

标签: python django django-urls

使用django,我想通过我的URL conf中的变量来获取项目的名称。假设我的产品名称是"堆栈溢出"我希望能够去:

http://127.0.0.1:8000/product/stack+overflow/

但我得到的是一个找不到的页面" 404页。当名称只是单词时,它确实有效,但不是多个单词。

我的urls.py

from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(r'^product/(?P<name>\w+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)

1 个答案:

答案 0 :(得分:0)

您需要扩展正则表达式以匹配您希望在网址中添加的其他字符。

在您允许使用字母数字字符和+的情况下,这应该有效:

urlpatterns = patterns('',
    url(r'^product/(?P<name>[\w\+]+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)