0

我对 Python 和 Django 很陌生。我正在使用 Django - 1.4.5。我正在尝试从表单获取用户输入,使用用户输入重定向 url,例如

Httpresponseredirect('abc/xyz/%s' %variable)

我可以在浏览器中看到响应被重定向,但它会引发 404 错误。urls.py也有定义url

网址.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_recordapp.webapi.json.py中的一个函数。

如果需要更多详细信息,请告诉我。

4

2 回答 2

1

在你查看用户反向功能,首先添加一个url名称:

Httpresponseredirect(reverse('my_view_name', args=[variable]))

并且(就像@sushail 所说)修复正则表达式:

urlpatterns = pattern('',
   url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name', name='my_view_name')
)
于 2013-06-24T12:13:47.017 回答
0

您需要使用完整路径,因为正则表达式匹配 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',`
于 2013-06-24T12:01:53.737 回答