Problème d'url dans le tuto part 3 de Django
Bonjour,
J'en suis à la partie 3 du tutoriel Django :
https://docs.djangoproject.com/en/1.3/intro/tutorial03/
J'ai une erreur assez particulière que j'aimerais vous soumettre.
- Cas exposé dans le tuto
Mon fichier urls.py ressemble à ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/$', 'polls.views.index'),
url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
) |
et mon fichier views.py ressemble à ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world! You're at the poll index.")
def detail(request, poll_id):
return HttpResponse("You're looking at poll %s." % poll_id)
def results(request, poll_id):
return HttpResponse("You're looking at the results of poll %s." % poll_id)
def vote(request, poll_id):
return HttpResponse("You're voting on poll %s." % poll_id) |
Quand j'appelle la page admin, j'ai l'erreur :
Citation:
Caught ViewDoesNotExist while rendering: Tried vote in module polls.views. Error was: 'module' object has no attribute 'vote'
Quand j'appelle la page polls, j'ai l'erreur :
Citation:
Tried index in module polls.views. Error was: 'module' object has no attribute 'index'
En gros, j'ai l'impression qu'il ne trouve pas 'admin' dans les url patterns pour le premier cas, qu'il le trouve bien mais qu'il n'arrive pas à trouver 'index' dans views.py pour le deuxième cas... 8O:?
- Cas qui fonctionne
Si maintenant, je reviens à un cas plus simple en faisant ressembler mon urls.py à ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
#url(r'^polls/$', 'polls.views.index'),
#url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
#url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
#url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
) |
et que je laisse inchangé views.py alors :
- si je demande la page admin, ca fonctionne, j'ai bien ma page admin
- si je demande la page polls, j'ai bien évidemment rien
- Cas qui ne fonctionne plus
Si je rajoute simplement l'url pattern pour polls alors urls.py ressemble à ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/$', 'polls.views.index'),
#url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
#url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
#url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
) |
Et bien, je ne peux plus faire apparaitre la page admin car erreur:
Citation:
Caught ViewDoesNotExist while rendering: Tried index in module polls.views. Error was: 'module' object has no attribute 'index'
Je ne peux toujours pas faire apparaitre la page polls car erreur :
Citation:
Tried index in module polls.views. Error was: 'module' object has no attribute 'index'
Bref, y a que le cas où je ne mets que admin dans l'url patterns qui fonctionne...
Pourquoi?
Merci d'avance,
Florian