Bonjour,
Je suis débutant en Django et je souhaite créer une page web qui réalise un quiz.
1 image est projeté avec 4 réponses en radio bouton et un bouton valider.
Comment fait t'on pour récupéré depuis un template/gabarie le radio bouton choisi par l'utilisateur ?
J'arrive à récupérer des données à partir d'un formulaire mais pas d'un template sauf que je ne sais pas envoyer mes questions dans models à mon formulaire.
Bref j'ai besoin d'aide.
Le template
Code twig : 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 <!--la question--> <div class="Thequestion"> <h3>{{ mesQuestions.question_text }} </h3> </div> <!--les boutons radios--> <form action='' method="post"> {% csrf_token %} {{ form.as_p }} <div class="Theoption"> <input type="radio" id="{{mesQuestions.option1}}" value="{{mesQuestions.option1}}" ><label class="finition">{{mesQuestions.option1}}</label> <input type="radio" id="{{mesQuestions.option2}}" value="{{mesQuestions.option2}}" ><label class="finition">{{mesQuestions.option2}}</label> <input type="radio" id="{{mesQuestions.option3}}" value="{{mesQuestions.option3}}" ><label class="finition">{{mesQuestions.option3}}</label> <input type="radio" id="{{mesQuestions.option4}}" value="{{mesQuestions.option4}}" ><label class="finition">{{mesQuestions.option4}}</label> </div> <input type="submit" value="Valider" /> </form>
La view qui je pense est problématique...
Le models
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try: lecontext = QuestionOliv.objects.get(id=1) except QuestionOliv.DoesNotExist: raise Http404 return render(request, 'test.html', {'mesQuestions': lecontext}) option1 = request.POST.get('mesQuestions.option1') option2 = request.POST.get('mesQuestions.option2') # sujet = form.cleaned_data['sujet'] # message = form.cleaned_data['message'] objSave = QuestionOliv(option1=option1, option2=option2) objSave.save()
Étant nouveau Je pense avoir des problèmes de logique et de compréhension...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class QuestionOliv(models.Model): question_text = models.TextField(max_length=200, default="") option1 = models.CharField(max_length=50, default="") option2 = models.CharField(max_length=50, default="") option3 = models.CharField(max_length=50, default="") option4 = models.CharField(max_length=50, default="") answer = models.CharField(max_length=50, default="") def __str__(self): return self.question_text
Je vous remercie pour votre aide
Ma version de Django
2.2.4
Partager