Я разрабатываю приложение для викторины и пытаюсь восстановить разные ответы на один вопрос с помощью django - PullRequest
0 голосов
/ 08 марта 2020

Я разрабатываю приложение для викторины и пытаюсь восстановить ложные ответы на один вопрос с помощью python -jango; но это не работает, нужна помощь plz

, это мой views.py, когда я пытаюсь добавить разные ответы на вопрос; вставляется только последний

def add_question_form_submission(request):
    print("hello form is submitted.")
    Commentaire= request.POST["Commentaire"]
    questions = request.POST["question"]
    matiere= request.POST["matiere"]

    dif = request.POST["dif"]
    reponses= request.POST["reponse"]
    comment = request.POST["comment"]
    flag = request.POST["flag"]

    ques=question(questionA=questions,explication=Commentaire, difficulte=dif,id_matiere=matiere)
    ques.save()
    rep =reponse(response=reponses,commentaire=comment,estVrai=flag,id_question=ques.id_question)
    rep.save()
    return render(request,"myblog/questionnaire.html")

, и это мой шаблон с javascript, я использовал javascript, чтобы добавить больше полей, чтобы добавить больше ответов на вопрос

{% extends "myblog/base.html" %}
 {% block content %}
<html>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><input placeholder="reponse" type="text" name="reponse"/> <input placeholder="Comment" align="center" type="text" name="comment"><select name="flag"> <option value=True>Vrai</option><option value=False>Faux</option></select> <a href="#" class="remove_field">Remove</a></div>'); //add input box
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});
</script>




    </div>
</div>
<div align="center">
      <div align="center">
        <h3 align="center">ajouter questions</h3></br>

         <form method="post"  action="add_question_form_submission">
              {% csrf_token %}
         <input placeholder="question" align="center" type="text" name="question"> <select name="matiere"><option value=" ">matiere...</option> {% for mati in mat %}
     <option value={{mati.idmatiere}}>
          <p>  {{mati.nomMatiere }}</p>
         </option> {% endfor %}
 </select>
         <input placeholder="Commentaire" align="center" type="text" name="Commentaire">
         <select name="dif"><option value="">Niveau...</option>
         <option value=1>facile</option>
         <option value=2>intermediaire</option>
         <option value=3>difficile</option>
         </select></br></br>
         <div class="input_fields_wrap"></br>
         <button class="add_field_button">Add More Fields</button>
         <div><input placeholder ="reponse" type="text" name="reponse">
         <input placeholder="Comment" align="center" type="text" name="comment">
         <select name="flag">
         <option value=True>Vrai</option>
         <option value=False>Faux</option>
         </select>
          </br></br></div></div>
         </br></br>
         <input align="center" type="submit" value="ajouter">

         </form>
{% endblock content %}

1 Ответ

0 голосов
/ 08 марта 2020

Вам нужно сделать ваше поле reponse массивом. Вы можете сделать это, добавив открывающую и закрывающую квадратные скобки, например, в атрибут name: []

Например:

<input placeholder ="reponse" type="text" name="reponse[]">

Затем на стороне сервера вы можете использовать данные из поля reponse в виде массива, итерируйте элементы и вставьте его в базу данных.

У меня нет предварительных знаний в Django. Итак, все, что я могу дать вам, это предложения. Надеюсь, у вас есть идея!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...