我是Python和Django的新手。 我正在使用Django - 1.4.5。我试图从表单获取用户输入,使用用户输入重定向URL,如
Httpresponseredirect('abc/xyz/%s' %variable)
我可以在浏览器中看到响应被重定向,但它会引发404错误。 urls.py 也定义了url
。
urls.py
urlpatterns = pattern('',
url (r'abc/xyz/(?P<variable>)/pqr' , 'view_name')
)
请你点亮一下。
在进一步调试时,我可以发现问题是将参数传递给reverse
函数。当我传递一个没有参数的静态页面时,它会重定向到正确的视图。但是当我使用参数重定向时,它会引发NoreverseMatch
错误。我正在以这种方式重定向
return HttpResponseRedirect(reverse('view_name', kwargs= {'group':'group'}))
在 urls.py 中,定义为:
url (r'app/$' , 'app.view.app') ,
url (r'^my/first/(?P<group>)/$ , 'app.webapi.json.list_record', name ='view_name;),
list_record
是 app.webapi.json.py 中的一个函数。
如果需要更多详细信息,请与我们联系。
答案 0 :(得分:1)
您查看的用户reverse function,首先添加网址名称:
Httpresponseredirect(reverse('my_view_name', args=[variable]))
和(像@sushail说的那样)修复了正则表达式:
urlpatterns = pattern('',
url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name', name='my_view_name')
)
答案 1 :(得分:0)
你需要使用完整路径,因为regexpression匹配abc / xyz /..../ pqr
Httpresponseredirect('/abc/xyz/%s/pqr/' %variable)
和喜欢(像@lalo说的那样)
urlpatterns = pattern('',
url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name')
)
请在开始和结束时/
检查,view_name
是什么,看起来您必须在项目目录中有这样的视图,或者您必须在urlpatterns中添加apppath
`urlpatterns = pattern('<yourappname>.views',`