2012-11-18 54 views
8

我有以下URL模式:Django的觀點得到了一個意想不到的關鍵字參數

urlpatterns = pattern('', 
    ... 
    url(r'edit-offer/(?P<id>\d+)/$', login_required(edit_offer), name='edit_offer'), 
) 

和相應的edit_offer觀點:

def edit_offer(request, id): 
    # do stuff here 

報價頁面上的鏈接導致編輯報價觀點:

<a class="btn" href="{% url edit_offer offer.id %}">Edit</a> 

單擊該按鈕會引發TypeError:

edit_offer() got an unexpected keyword argument 'offer_id' 

任何想法是怎麼回事?我看不出這裏有什麼問題。我有其他意見相似的模式,他們都工作正常。

回答

11

試試這個:

urls.py: -

urlpatterns = pattern('whatever_your_app.views', 
    ... 
    url(r'edit-offer/(?P<id>\d+)/$', 'edit_offer', name='edit_offer'), 
) 

views.py: -

from django.contrib.auth.decorators import login_required 

... 

@login_required 
def edit_offer(request, id): 
    # do stuff here 

,並在您template: -

{% url 'edit_offer' offer.id %} 
+0

謝謝。根據你的建議,當我輸入一個完整的路徑給我的報價,我發現我有另一個相同名稱的視圖(虛擬),並且該報價確實沒有在其kwargs中的offer_id,刪除它解決了我的問題。愚蠢的錯誤在我身上。 – Neara

+0

我明白了。沒問題。 –

相關問題