未从urls.py中选择重定向的网址

时间:2013-06-24 11:17:42

标签: python django

我是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 中的一个函数。

如果需要更多详细信息,请与我们联系。

2 个答案:

答案 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',`