Comment gérer plusieurs formulaires dans une vue?
Parfois, nous faisons deux formulaires ou plus en une page qui résultent de sortie ou d'erreur inutile.
Pour traiter ce problème, nous devons mettre en valeur unique de chaque formulaire.
Solutions :
Nous allons commancer à' modifier votre template.
#page.html
<'form method="'POST"'>' {{form1.as_p}} <'input type="'hidden"' name="'action"' value="'first"'>' <'input type="'submit"' value="'Submit"'>' <'/form>' <'form method="'POST"'>' {{form2.as_p}} <'input type="'hidden"' name="'action"' value="'second"'>' <'input type="'submit"' value="'Submit"'>' <'/form>' <'form method="'POST"'>' {{form3.as_p}} <'input type="'hidden"' name="'action"' value="'third"'>' <'input type="'submit"' value="'Submit"'>' <'/form>' |
Remarquez que j''ai mis dans chaque formulaire <'input type="'hidden"' name="'action"'>' qui a une valeur diffé'rente (premier, deuxiè'me, troisiè'me). Cette valeur caché'e sera utilisé' dans les vues.
Maintenant, nous allons modifier le traitement dans la vue.
#views.py
def myview(request): if request.method == ''POST'': if request.POST[''action''] == ''first'': //do stuff here for form1 elif request.POST[''action''] == ''second'': //do stuff here for form2 elif request.POST[''action''] == ''third'': //do stuff here for form3 return render(request, ''mypage.html'') |
De cette faç'on, le systè'me saura quelle forme doit ê'tre procé'dé'.
Il ne s''agit que d''un é'chantillon de base. Il existe de nombreuses faç'ons de traiter ce genre de problè'me.
Nombre de Lectures : 429
Date de mise en ligne : 04 avr. 2014 à 17:12
Les Catégories