2017-06-22 2 views
-1

Je crée un formulaire de plusieurs pages dans lequel chaque page enregistre des données dans des tables différentes. Maintenant, lorsque je soumets le formulaire, ma vue doit HttpResponseRedirect à une URL inversée. Mais c'est exactement ce qui ne se passe pas. Le fait est que return HttpResponse(reverse('url') imprime le bon URL, mais HttpResponseRedirect ne redirige pas vers l'URL inversée.reverse/httpresponseredirect ne fonctionne pas dans django

Voici le 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

avez-vous essayé 'redirect (url)' ?? 'à partir de django.shortcuts importer redirection' ..... quelle erreur obtenez-vous ?? – zaidfazil

+0

Je ne reçois pas d'erreur, juste une page blanche. Rediriger fait la même chose. En soumettant le formulaire, puis laisse une page blanche, pas la nouvelle page. –

+0

pouvez-vous afficher la vue 'get_form'? – zaidfazil

Répondre

0

Essayez de changer votre URL, peut-être un peu comme ça, (en supposant que les ids sont des nombres entiers),

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