2009-07-15 2 views
3

Ich folge dem Django Tutorial und blieb mit einem Fehler in Teil 4 des Tutorials stecken. Ich habe zu dem Teil, wo ich schreibe die Abstimmung Ansicht, die umgekehrt zu einer anderen Ansicht umleiten. Aus irgendeinem Grunde umgekehrt mit folgenden Ausnahme fehlschlägt:Django: umgekehrte Funktion schlägt mit einer Ausnahme fehl

Import() Argument 1 String sein muss, nicht instancemethod

Derzeit urls.py mein Projekt wie folgt aussieht:

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 die Admin-URLs entfernen des Projekts urls.py umfassen, dh die es in:

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.

Antwort

6

Die Art und Weise, wie Sie die Admin-URLs hinzufügen, hat sich in den letzten Versionen mehrmals geändert. Wahrscheinlich verwenden Sie die falschen Anweisungen für die Version von Django, die Sie installiert haben.

Wenn Sie den aktuellen Trunk verwenden - also keine offizielle Version - dann ist die Dokumentation unter http://docs.djangoproject.com/en/dev/ korrekt. Wenn Sie jedoch 1.0.2 verwenden, sollten Sie dem Link oben auf der Seite zu http://docs.djangoproject.com/en/1.0/ folgen.

+0

Genie! :) Alles, was ich tun musste, ist das Ändern der URLs der Admin-URLs in URL-Muster zu: (r '^ admin /(.*)', admin.site.root), anstelle von: (r '^ admin/(. *) ', include (admin.site.root)), Vielen Dank! – arikfr

Verwandte Themen