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.