Question

Je suis suivant le tutoriel Django et est resté coincé avec une erreur à la partie 4 du tutoriel. Je suis arrivé à la partie où j'écris vote vue, qui utilise inverse pour rediriger vers une autre vue. Pour une raison quelconque, inverse échoue à l'exception suivante:

  

Argument 1 doit être une chaîne import (), pas instancemethod

À l'heure actuelle le urls.py de mon projet ressemble à ceci:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
(r'^admin/(.*)', include(admin.site.root)),
)

et l'application urls.py est:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
     (r'^$', 'index'),
     (r'^(?P<poll_id>\d+)/$', 'details'),
     (r'^(?P<poll_id>\d+)/results/$', 'results'),
     (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

Et la vue vote est le suivant: (je l'ai simplifié pour avoir seulement la ligne avec l'erreur)

def vote(request, poll_id):
    return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(1,)))

Quand je supprime l'administrateur urls comprennent de la urls.py du projet, à savoir en faire:

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
#(r'^admin/(.*)', include(admin.site.root)),
)

il fonctionne.

Je l'ai essayé tant de choses et ne peut pas comprendre ce que je fais mal.

Était-ce utile?

La solution

La façon dont vous inclure les URL d'administration a changé plusieurs fois au cours des deux dernières versions. Il est probable que vous utilisez les mauvaises instructions pour la version de Django vous avez installé.

Si vous utilisez le tronc en cours - à savoir pas une version officielle - puis la documentation http: //docs.djangoproject.com/en/dev/ est correcte.

Cependant, si vous utilisez 1.0.2 alors vous devez suivre le lien en haut de la page

scroll top