2017-06-22 4 views
-1

Ich mache ein mehrseitiges Formular, wo jede einzelne Seite Daten in verschiedenen Tabellen speichert. Jetzt, wenn ich das Formular abschicke, sollte meine Ansicht HttpResponseRedirect auf eine umgekehrte URL verweisen. Aber genau das passiert nicht. Tatsache ist, dass return HttpResponse(reverse('url') die richtige URL druckt, aber HttpResponseRedirect nicht zur umgekehrten URL umleitet.Reverse/httpResponseRedirect funktioniert nicht in Django

Dies ist der Code:

def get_form_naw(request, form_id, filterid, project_id): 
    if request.method == 'POST': 
     form = OpnameNawForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      form_id = int(form_id) + 1 
      url = reverse('opname:get_form', kwargs={'form_id': form_id, 'filterid': filterid, 'project_id': project_id}) 
      return HttpResponseRedirect(url) 
    else: 
     form = OpnameNawForm() 
    return render(request, 'opname/home.html', {'form': form}) 

urls.py

url(r'^formulier/step/(?P<filterid>[^/?]+)/(?P<form_id>[^/?]+)/(?P<project_id>[^/?]+)/$', views.get_form, name='get_form'), 
+0

hast du versucht 'redirect (url)' ?? 'von django.shortcuts Import Redirect' ..... welchen Fehler bekommen Sie ?? – zaidfazil

+0

Ich bekomme keinen Fehler, nur eine leere Seite. Redirect macht das Gleiche. Ich übergebe das Formular und hinterlasse eine leere Seite, nicht die neue Seite. –

+0

können Sie die Ansicht 'get_form' anzeigen? – zaidfazil

Antwort

0

Versuchen Sie Ihre URL zu ändern, vielleicht etwas wie diese, (vorausgesetzt, die Ide ganze Zahlen sind),

url(r'^formulier/step/(?P<filterid>[\d]+)/(?P<form_id>[\d]+)/(?P<project_id>[\d]+)/$', views.get_form, name='get_form')