Django HttpResponseRedirect und reverse()
Situation kurz. Für einige Grund, reverse () - Methode funktioniert nicht.
im PROJEKT urls.py
url(r'^enrollment/', include('project.enrollment.urls')),
in der APP urls.py
url(r'^thanks/$', 'enrollment.views.thanks', name='enroll_thanks'),
und in views.py
from django.core.urlresolvers import reverse
def thanks(request):
return render_to_response('enrollment/thanks.html', {}, context_instance=RequestContext(request))
def enroll(request):
''' some code for handling the form'''
return HttpResponseRedirect(reverse('enrollment.views.thanks'))
Diese umgekehrte verursacht folgenden Fehler:
Konnte nicht importiert werden Projekt.Blick. Fehler: No module named views
in der Datei ../django/core/urlresolvers.py in _get_callback, Linie 167
Eine Idee warum das nicht funktioniert? Im nächsten Schritt ist der Aufruf der Dank-Ansicht mit einem parameter, aber das sollte einfach sein, nach diesem setup funktioniert. Sollte es etwas mehr werden importiert views.py?
InformationsquelleAutor rice | 2012-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der docs für reverse: "Als Teil der arbeiten heraus, welche URL-Namen anzeigen, um die Muster, die reverse () - Funktion zu importieren alle Ihre URLconf-Dateien und überprüfen Sie die Namen der einzelnen anzeigen. Dies beinhaltet das importieren von einzelnen view-Funktion. Wenn es irgendwelche Fehler beim importieren alle Ihre view-Funktionen, es wird dazu führen, reverse (), um einen Fehler auszulösen, auch wenn das view-Funktion ist nicht die, die Sie versuchen, Sie rückgängig zu machen."
Sind alle Ihre urls verweisen auf
project.views.
...?InformationsquelleAutor philofinfinitejest
Nicht zu sicher, dass Ihre Modul-layout basiert aber auf die include () - Zeile im urls.py es sieht aus wie Sie wollen "Projekt". zu dem argument in der reverse () - Aufruf als gut.
Oder Sie haben einen Fehler in der Ansicht.
InformationsquelleAutor istruble