2017-03-28 2 views
0

ab Ich habe eine Quizansicht, die eine Liste mit Fragen und Textbereich für Schüler anzeigt, um ihre Antworten einzugeben. Da ich neu in Django bin, frage ich mich, was ist der richtige Weg, um die Liste der Schüler Antworten von der Post-Methode zu bekommen? Hier ist meine aktuellen Code:Django rufen eine Liste von Elementen aus Formular

forms.py

class TakeTestForm(forms.Form): 
    student_answer = forms.CharField(widget=forms.Textarea, label='') 

views.py

class TakeTestFormView(FormView): 
    def post(self, request, *args, **kwargs): 
     submit_answer_form = self.form_class(request.POST) 

     if submit_answer_form.is_valid(): 
      answer_list = request.POST['student_answer'] ?? # TODO: Retrieve list of answers from the form 

index.html

{% for question in qst_data %} 
    <div id="action-container"> 
       {{ take_test_form.as_p }} 
    </div> 
% endfor %} 

Antwort

0

Ich denke this Informationen aus offiziellen django docs wird nützlich für dich. Nach der Validierung von Django-Formularen können und sollten die Daten aller Felder aus dem Verzeichnis cleaned_data abgerufen werden. Here sind Informationen, die den Grund dafür erklären:

Jedes Feld in einer Form-Klasse ist dafür verantwortlich, nicht nur Daten für die Validierung, sondern auch für die „Reinigung“ - es zu einem einheitlichen Format zu normalisieren. Dies ist eine nette Funktion, da Daten für ein bestimmtes Feld auf verschiedene Arten eingegeben werden können, was immer zu einer konsistenten Ausgabe führt.

Verwandte Themen