Frage

Ich folge das Tutorial Django und bekam 4 des Tutorials mit einem Fehler im Teil stecken. Ich habe zu dem Teil, wo ich schreibe die Stimme Ansicht, die verwendet Reverse , um zu einer anderen Ansicht zu umleiten. Aus irgendeinem Grunde Reverse schlägt mit folgenden Ausnahme:

  

Import () Argument 1 muss String sein, nicht instancemethod

Zur Zeit urls.py mein Projekt sieht wie folgt aus:

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)),
)

und die App urls.py ist:

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'),
)

Und die Abstimmung Ansicht ist: (ich es vereinfacht habe nur die Zeile mit dem Fehler haben)

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

Wenn ich entferne Sie die Admin-URLs aus dem Projekt urls.py umfassen, das heißt, es in der Herstellung:

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

es funktioniert.

Ich habe so viele Dinge ausprobiert und kann nicht verstehen, was ich falsch mache.

War es hilfreich?

Lösung

Die Art und Weisen Sie den Admin-URLs hat ein paar Mal in den letzten paar Versionen geändert. Es ist wahrscheinlich, dass Sie die falschen Anweisungen für die Version von Django verwenden Sie installiert haben.

Wenn Sie den aktuellen Stamm verwenden - also keine offiziellen Release - dann ist die Dokumentation unter http: //docs.djangoproject.com/en/dev/ korrekt ist.

Wenn Sie jedoch verwenden 1.0.2 dann sollten Sie den Link oben auf der Seite auf

scroll top