Bonjour, alors j'ai un problème qui va surement vous paraitre bête, mais j'ai une page qui contient plusieurs ModelForm avec chacun un bouton submit, du coup mon problème est que lorsque je remplis le formulaire et que je clic sur le bouton ça me créer bien mon objet dans la bonne table de ma base donnée mais en gros il active aussi tout les autres formulaires de page ce qui est un peu gênant… je ne comprend pas tellement pourquoi il me semble pourtant avoir bien fais même si je pense aussi que mon code peut être grandement amélioré. Donc je viens demander votre aide afin que quel qu'un puisse m'expliquer mon erreur pour que je puisse savoir ce qui cloche car pour l'instant je ne vois pas d’où viens ce problème.
voici mon code:
la vues:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | def Experimentform(request): form = ExpForm(request.POST or None) Siform = SixcForm(request.POST or None) kbform = KbForm(request.POST or None) Othform = OtherForm(request.POST or None) Optform = OpticsForm(request.POST or None) context = { "form" : form, "Siform" : Siform, "kbform" : kbform, "Othform" : Othform, "Optform" : Optform } if form.is_valid(): instance = form.save(commit=False) instance.save() form = ExpForm() if Siform.is_valid(): instance = Siform.save(commit=False) instance.save() Siform = SixcForm() if kbform.is_valid(): instance = kbform.save(commit=False) instance.save() kbform = KbForm() if Othform.is_valid(): instance = Othform.save(commit=False) instance.save() Othform = OtherForm() if Optform.is_valid(): instance = Optform.save(commit=False) instance.save() Optform = OpticsForm() return render(request, 'data/experiment.html', context ) |
le html :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | {% block jumbotron %} <div class="jumbotron"> <div class ="row"> <div class ="col-xs-3"> <form method ="POST" action ="">{% csrf_token %} {{Siform|crispy}} <input class="btn btn-primary" type="submit" value="Add"/> <form/> </div> <div class ="col-xs-3"> <form method ="POST" action ="">{% csrf_token %} {{kbform|crispy}} <input class="btn btn-primary" type="submit" value="Add"/> <form/> </div> <div class ="col-xs-3"> <form method ="POST" action ="">{% csrf_token %} {{Optform|crispy}} <input class="btn btn-primary" type="submit" value="Add"/> <form/> </div> <div class ="col-xs-3"> <form method ="POST" action ="">{% csrf_token %} {{Othform|crispy}} <input class="btn btn-primary" type="submit" value="Add"/> <form/> </div> </div> </div> {% endblock %} {% block content %} <div class ="row"> <h1>Experiment</h1> <div class ="col-md-8"> <form method ="POST" action ="">{% csrf_token %} {{form|crispy}} <input class="btn btn-primary" type="submit" value="Send to database"/> <form/> </div> </div> {% endblock %} |
Merci d'avance pour votre aide !