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 à