2013-06-24 38 views
0

我對Python和Django很新穎。 我正在使用Django - 1.4.5。我試圖從形式獲取用戶輸入的,與用戶輸入重定向的URL像重定向的URL不是從urls.py中挑選的

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_recordapp.webapi.json.py功能。

請讓我知道是否需要更多的細節。

+0

能告訴你一個例子網址你在哪裏看到的響應被重定向? (肯定有一個正則表達式的問題) – alecxe

+0

並顯示你使用'Httpresponseredirect('abc/xyz /%s'%變量)' – lalo

+0

你應該發佈你的實際代碼...'(?P )'doesn 't實際上沒有匹配任何東西,因爲它沒有模式,而Httpresponseredirect('abc/xyz /%s'%variable)'沒有包含正確的url。在這一點上,人們只能糾正你編寫僞代碼的錯誤,這可能不會幫助你解決你的具體問題... – Ngenator

回答

0

你需要爲regexpression配襯ABC/XYZ /..../ PQR

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

使用完整的路徑和像(如@lalo說)

urlpatterns = pattern('', 
    url (r'^abc/xyz/(?P<variable>)/pqr/$' , 'view_name') 
) 

請checkwith /在開始和結束,什麼是view_name,看起來您必須在項目目錄中有這樣的視圖,或者您必須在urlpatterns中添加apppath

`urlpatterns = pattern('<yourappname>.views',` 
+1

是的,也許你的正則表達式應該是' R'^ ABC/XYZ /(?P )/ pqr/$'' – lalo

+0

是的,這一定是問題 – suhailvs

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') 
) 
+0

我嘗試了所有建議的選項沒有任何解決。 –

+0

當我使用相反,我得到「NoReverseMatch」。 –

+0

是'view_name'的一個函數嗎? – lalo