Bonjour,

N'ayant pas eu de réponse à ma question ci-dessous je me permets de la reposer 
mais légèrement différemment.
Ce que je cherche à faire pourrait être comparé à la gestion de deux submits 
dans un même formulaire.

Le premier pour enregistrer les valeurs du formulaire dans la BDD, le deuxième 
pour réinitialiser celui-ci.

D'après ce que j'ai pu voir dans la doc et sur le net, poser une condition if 
sur l'un des tag de l'input devrait permettre de faire ceci. Malheureusement je 
n'y suis pas encore parvenu.

Une petite idée ???

D'avance merci.



Bonjour,

Je souhaite mettre deux formulaires différents sur une même page.


<form method="post" action="{% url 'creation' %}">{% csrf_token %}

        <ul>
            <li>{{ form1.code.label }} {{ form1.code }}</li>
            <li>{{ form1.nom.label }} {{ form1.nom }}</li>
            <li>{{ form1.pays.label }} {{ form1.pays }}</li>
        </ul>
        {{ form1.errors }}

      <p><input type="submit" value="Enregistrer" name="save1"/></p>
    </form>
    
    <br><br>

   Ajouter un Pays<br>
    <form method="post" action="{% url 'creation' %}">{% csrf_token %}
      {{ form2 }}
      <p><input type="submit" value="Enregistrer" name="save2"/></p>
    </form>

Je souhaite différencier l'action des submits. J'ai donc fait ma vue comme suit 
: 

def clients(request):
    if request.method == 'POST':
        _formClient = ClientForm(request.POST)
        _formPays = PaysForm(request.POST)

        if 'saveClt' in request.POST :
                if _formClient.is_valid():
                _formClient.save()
        if 'savePays' in request.POST :
            if _formPays.is_valid():
                _formPays.save()

    else:
        _formClient = ClientForm()
        _formPays = PaysForm()

    return render(request, 'Clients.html', {
            "form1": _formClient,
            "form2": _formPays,
            })

Malheureusement si je clique sur l'input "lié" à form2 des erreurs apparaîsent 
dans form1 ... ceci est un peu normal puisque je n'ai rien renseigné, mais en 
théorie il ne devrait même pas y avoir d'appel, non ?

Je trouvé plusieurs manières de faire ce que je souhaite sur le net, mais pour 
le moment je n'ai réussi à en faire fonctionner correctement aucune.

Une idée ??? :)

Bon ap' à tous.




_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à