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.

  1. Cas exposé dans le tuto
    Mon fichier urls.py ressemble à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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 :
    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...


  2. Cas qui fonctionne
    Si maintenant, je reviens à un cas plus simple en faisant ressembler mon urls.py à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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


  3. Cas qui ne fonctionne plus
    Si je rajoute simplement l'url pattern pour polls alors urls.py ressemble à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    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 :
    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