2013-03-04 158 views
1

我想通过额外的选项使用反向Django的URL,但我不希望显示这些参数中的URL传递参数传递给URL,但不希望它的URL显示在Django

我试过下面提到的代码,但没有运气,投掷NoReverseMatch异常。

urls.py

urlpatterns = patterns('', 
    url(r'^foo-direct/', 'myapp.views.someview', {'wo_id': 1}, name='foo-direct'), 
) 

views.py

return HttpResponseRedirect(reverse('foo-direct', kwargs={'wo_id':2})) 

请建议,如果我做错了什么。

UPDATE

我怎样才能做到不显示在浏览器(URL)的参数?

我的观点函数接受多个参数,我想通过这些多个参数,因此我不希望显示在URL的所有参数

+0

这篇文章对你有帮助吗? http://stackoverflow.com/questions/6515188/how-to-pass-extra-arguments-to-views-function-as-a-url-in-django – 2013-03-04 08:30:23

+0

你的意见代码是不正确的,你传递一个变量,而不是存在于你的网址代码 – catherine 2013-03-04 08:30:50

+0

你想通过一个ID和在相同的额外选项?或只有额外选项? – catherine 2013-03-04 08:31:33

回答

0

只需从反向功能下降的kwargs参数 -

return HttpResponseRedirect(reverse('foo-direct') 

UPDATE

除非在URL中包含wo_id,否则您无法使用动态wo_id的反转。 reverse函数查看你的url conf中的所有url。它会寻找与args,kwargsname匹配的网址,该网址与args,kwargsname相匹配,您将它传递给reverse。当它找到匹配时,它返回相应的函数(一个视图)。

我不知道为什么你不想在你的url中使用你的wo_id,所以很难提出建议,但是,如果你试图保持你的url的描述性,那么也许你可以看看使用slug字段而不是一个id。

+0

我的wo_id值将是动态的,我怎样才能通过wo_id动态值使用反向/ – Asif 2013-03-04 08:54:05

+0

我怎样才能实现而不显示参数在浏览器(网址)? 我的视图函数接受多个参数,我想传递这些多个参数,因此我不想显示URL中的所有参数 – Asif 2013-03-04 09:07:48

+0

你真的不能,动态变量传递给视图函数的唯一方法是在url 。 – 2013-03-04 09:09:51

0

这没有任何意义。如果不通过URL,就无法将动态参数传递给视图。它将如何到达那里?当用户实际访问该URL时,Django如何知道要使用哪个参数?