Sto imparando Django da [THIS] [1] tutorial. Evertyhing ha funzionato perfettamente fino a quando questo passaggio:I "sondaggi" di Django non sono uno spazio dei nomi registrato
Ora cambiare la vostra sondaggi/template index.html da:
<li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
per puntare alla vista di dettaglio namespace:
<li><a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a></li>
Puoi vedi l'intero paragrafo [QUI] [2].
Ed è quello che è successo dopo che ho cambiato 'dettaglio' in 'sondaggi: particolare':
NoReverseMatch at /polls/
'polls' is not a registered namespace
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/
Django Version: 1.6.4
Exception Type: NoReverseMatch
Exception Value:
'polls' is not a registered namespace
Exception Location: D:\Programy\Python 3.4\lib\site-packages\django\core\urlresolvers.py in reverse, line 528
Python Executable: D:\Programy\Python 3.4\python.exe
Python Version: 3.4.0
Python Path:
['D:\\dziango\\strona1',
'D:\\Programy\\Python 3.4\\python34.zip',
'D:\\Programy\\Python 3.4\\DLLs',
'D:\\Programy\\Python 3.4\\lib',
'D:\\Programy\\Python 3.4',
'D:\\Programy\\Python 3.4\\lib\\site-packages']
Server time: Wed, 21 May 2014 16:36:13 +0200
e qui è la mia Traceback:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/
Django Version: 1.6.4
Python Version: 3.4.0
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Template error:
In template D:\dziango\strona1\polls\templates\polls\index.html, error at line 1
'polls' is not a registered namespace
1 : {% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href=" {% url 'polls:detail' poll.id %} ">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>Nie ma ankiet.</p>
{% endif %}
Traceback:
File "D:\Programy\Python 3.4\lib\site-packages\django\core\handlers\base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:\dziango\strona1\polls\views.py" in index
11. return render(request, 'polls/index.html', context)
File "D:\Programy\Python 3.4\lib\site-packages\django\shortcuts\__init__.py" in render
53. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "D:\Programy\Python 3.4\lib\site-packages\django\template\loader.py" in render_to_string
169. return t.render(context_instance)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\base.py" in render
140. return self._render(context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\base.py" in _render
134. return self.nodelist.render(context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\base.py" in render
840. bit = self.render_node(node, context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\debug.py" in render_node
78. return node.render(context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\defaulttags.py" in render
305. return nodelist.render(context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\base.py" in render
840. bit = self.render_node(node, context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\debug.py" in render_node
78. return node.render(context)
File "D:\Programy\Python 3.4\lib\site-packages\django\template\defaulttags.py" in render
196. nodelist.append(node.render(context))
File "D:\Programy\Python 3.4\lib\site-packages\django\template\defaulttags.py" in render
447. six.reraise(*exc_info)
File "D:\Programy\Python 3.4\lib\site-packages\django\utils\six.py" in reraise
550. raise value
File "D:\Programy\Python 3.4\lib\site-packages\django\template\defaulttags.py" in render
433. url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "D:\Programy\Python 3.4\lib\site-packages\django\core\urlresolvers.py" in reverse
528. key)
Exception Type: NoReverseMatch at /polls/
Exception Value: 'polls' is not a registered namespace
Ho provato ogni singola soluzione da [QUESTO] [3] argomento simile ma nessuno di loro funziona per me. Non incollo il mio codice qui perché ho scritto tutto da quel tutorial ed è esattamente lo stesso. Tutto ciò che ho fatto è stato fatto passo dopo passo in base ad esso. Ma se hai comunque bisogno del mio codice, per favore dillo e lo metto qui.
Ci scusiamo per il mio inglese.
== == EDIT ecco la mia radice di file urls.py:
from django.conf.urls import patterns, url, include
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls', namespace="polls")),
url(r'^admin/', include(admin.site.urls)),
)
e questo è sondaggi/views.py:
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse
from polls.models import Choice, Poll
# Create your views here.
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})
def results(request, poll_id):
return HttpResponse("Wyniki ankiety %s!" %poll_id)
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the poll voting form
return render(request, 'polls/detail.html', {
'poll':p,
'error_message':"Nie wybrałeś żadnej opcji.",
})
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponse(reverse('polls:results', args=(p.id,)))
sondaggi/urls.py:
AGGIORNAMENTO: Ok, ho fatto un errore stupido posizionando il mio urls.py nella directory wrond .. scusa
Si prega di non rimuovere il testo della domanda del genere. Ho ripristinato le tue ultime due modifiche. – Stijn
Riavvia il server web. Solo quello. – therealsix