使用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'),
)
答案 0 :(得分:0)
您需要扩展正则表达式以匹配您希望在网址中添加的其他字符。
在您允许使用字母数字字符和+
的情况下,这应该有效:
urlpatterns = patterns('',
url(r'^product/(?P<name>[\w\+]+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)