2011-09-11 51 views
1

以下django的反轉給定的錯誤NoReverseMatch

views.py

return redirect('order-review', order=order.id) 

urls.py

url(r'^review/$', 'checkout.views.review', {'order': '0'}, name="order-review"), 

旨在

views.py

def review(request, order): 

是否有一個非常明顯的修復?我只是看不到我有什麼錯誤,而django docco在通過變量傳遞示例時略有點亮。

回答

2

它沒有解析,因爲您的網址格式實際上是對訂單值進行硬編碼(它始終爲'0')。

您必須提供一種方法,以便在URL本身內更改訂單值。

準確地說:

urls.py

url(r'^review/$', 'checkout.views.review', {'order':'0'}, name="order-review-default-fallback"), 
url(r'^review/(?P<order>[\d]+)/$', 'checkout.views.review', {}, name="order-review"), 

應該解決您的問題。

+0

謝謝,這正是我所需要的。認爲通過提供默認的我告訴它要修改什麼,但現在我明白爲什麼那不是這種情況。 – bytejunkie

+0

實際上,如果您設置了視圖函數關鍵字參數('def review(request,order = 0)')的默認值,它將按照您的意願工作。 –