Django-fr

Forum

#1 11-05-2015 09:59:36

cobra85
Membre
Inscription : 11-05-2015
Messages : 58

Organisation des templates

Bonjour,

Je développe (j'essai) un petit site sur Django et j'ai quelques soucis dans la mise en forme de certains templates. En effet, j'arrive à afficher un formulaire avec un menu dans le tout dans la meme page, et à afficher le résultat par exemple. J'utilise un template "base.html" avec des balises

<section id="content">
            {% block content %}{% endblock %}
        </section>

Cela dit, je souhaite mettre sur la meme page deux formulaires comme ceci:

<section id="content">
            {% block content %}{% endblock %}
        </section>
        <section id="recherche">
            {% block recherche%}{% endblock %}
        </section>

Mais cela ne m'affiche qu'un seul formulaire mais deux boutons "submit". Pourquoi ??

Ma deuxieme question, similaire à la premiere est comment afficher sur la meme page, un formulaire de recherche et les résultats de ce formulaires ??

Merci

Hors ligne

#2 11-05-2015 17:12:32

Alone9
Membre
Inscription : 29-08-2014
Messages : 32

Re : Organisation des templates

Salut,

déjà le code que tu affiches ne montre aucun formulaire mais juste des balises block. Pour la première question: Oui tu peux avoir 2 formulaire en une page, exemple.

views.py

def test(request):
    #### Premiere formulaire ####
    form1=PremierForm(request.POST)
    if request.method=='POST' and form1.is_valid():
        #si les informations du premier form sont POST et valide sa passe 


    #### Deuxieme formulaire ####
    form2=DeuxiemeForm(request.POST)
    if request.method == 'POST' and form2.is_valid():
        #de même qu'au dessus
    
    return render(request, "test.html", {'form1':form1,'form2':form2 })

test.html

<form method="post" action=" ">
    {% csrf_token %}
        {{form1.as_p}}
</form>
<form method="post" action=" ">
    {% csrf_token %}
        {{form2.as_p}}
</form>

Avec ça il y a 2 formulaire sur une page.
Et pour la deuxième question: Oui, c'est possible aussi mais si tu veux pas de chargement, tu vas devoir passer par JavaScript je pense.

Hors ligne

Pied de page des forums