Salut !
J'ai une préoccupation, si vous pouvez m'aider.
Dans un fichier index.html j'ai un formulaire dont les données sont les questions (affichées dynamiquement en parcourront la table Question via la boucle for), je veux valider ce formulaire et stocké les réponses dans la base de données.
J’attribue 'IDENTIFIANT' de la table Question au NAME des INPUT (qui sont des réponses à la question), ce qui fait que pour la question 1 on aura :
Par exemple
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="radio" name="1"/>Oui <input type="radio" name="1"/>Non
Et ainsi de suite pour les questions 2, 3, 4, etc.
La difficulté que je rencontre c'est de récupérer ce NAME dans un autre fichier nommé views.py afin d'enregistrer les données.
On aura : reply=http_request.POST['Ici on doit récupérer le contenu du NAME'].
Exemple :
reply=http_request.POST['choice'] ou reply=http_request.POST['1'].
Sauf que le contenu du NAME n'est pas statique dans mon cas.
N.B : Je n'ai pas voulu utilisé la class Form de django, parce que j'ai trop de condition à faire dans ce formulaire.
Voici le code du fichier index.html :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
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 <form method="POST" action="{% url 'reviews:index'%}" name="form" class="form mx-auto mt-2 pb-5"> {% csrf_token %} {% for q in question %} <div class="mb-5"> <ul class="text-info"> {{ q.question_text }}</ul> <div class="form-check form-check-inline"> <ul class="mb-1"> <input class="form-check-input perso_style" type="radio" name="{{ q.id }}_boolean" id="txt1" value="1" required/> <label class="form-check-label text-light" for="txt1"> <!-- True --> Oui </label> <input class="form-check-input perso_style" type="radio" name="{{ q.id }}_boolean" id="txt2" value="0" required/> <label class="form-check-label text-light" for="txt2"> <!-- False --> Non </label> <input type="hidden" name="{{ q.id }}_id" value="{{ q.id }}"/> </ul> </div> </div> {% endfor %} <input type="submit" class="btn btn-primary mx-auto d-block mt-5" value="Terminé" /> </form>
Partager