Sto seguendo il tutorial ufficiale per imparare Django e utilizzare 1.5.Django: Reverse per 'dettagli' con argomenti '(' ',)' e argomenti parola chiave '{}' non trovati
ho avuto questo link come parte del mio modello di indice, che stava lavorando bene:
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
tuttavia, questo è hardcoded e il tutorial suggerito un modo migliore era quello di utilizzare:
<li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
in modo che tu stia meglio quando hai a che fare con un numero enorme di modelli e devi apportare modifiche all'URL.
Da quando ho fatto il cambiamento sopra ottengo i seguenti errori quando si esegue l'applicazione:
Exception Type: NoReverseMatch
Exception Value: Reverse for 'detail' with arguments '('',)' and keyword arguments '{}' not found.
mio urls.py si presenta così:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)
views.py assomiglia a questo:
from django.shortcuts import render, get_object_or_404
from django.http import Http404
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.order_by('-pub_date')[:5]
context = {'latest_poll_list': latest_poll_list}
return render(request, 'polls/index.html', context)
def detail(request, poll_id):
poll = get_object_or_404(Poll, pk = poll_id)
return render(request, 'polls/detail.html', {'poll': poll})
mio modello index.html si presenta così:
0.123.Di solito posso facilmente leggere da dove proviene l'errore e gestirlo ma in questo caso non riesco a individuare la causa dell'errore, quindi non sono in grado di progredire con il mio studio. Qualsiasi aiuto sarà molto apprezzato.
Una cosa che ho notato è che usi la notazione namespace ('polls: detail') in' index.html', ma non definisci 'polls' come spazio dei nomi nel tuo' urlpatterns'. Prova a renderlo solo 'detail' senza' polls: 'per un momento. E non dovresti 'poll_id' essere' poll.id' lì? –
grazie mille .. Il problema era con poll_id invece di poll.id. ora funziona. Puoi metterlo come risposta in modo che io possa accettarlo? grazie ancora – fromPythonImportNoob