2013-03-04 91 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如何知道要使用哪個參數?