2012-11-18 12 views
8

ho un modello seguente URL:vista Django ottenuto un argomento chiave inaspettato

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

e una corrispondente vista edit_offer:

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

un link sulla pagina delle offerte porta a modificare vista offerta:

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

facendo clic sul pulsante genera un errore di tipo:

edit_offer() got an unexpected keyword argument 'offer_id' 

Qualche idea su cosa sta succedendo? Non vedo cosa c'è di sbagliato qui. Ho altri punti di vista con modelli simili e funzionano tutti bene.

risposta

11

Prova questo:

tuo urls.py: -

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

tuo views.py: -

from django.contrib.auth.decorators import login_required 

... 

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

e nel tuo template: -

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

grazie. seguendo il tuo consiglio, quando sono arrivato a digitare un percorso completo per la mia offerta, ho scoperto che avevo un'altra vista (fittizia) con lo stesso nome, e quell'offerta in effetti non aveva offer_id tra i suoi kwargs, rimuovendola ha risolto il mio problema. Errore stupido da parte mia. – Neara

+0

vedo. nessun problema. –

Problemi correlati