Ich habe eine App, die dem Benutzer einige Fragen anzeigt. Es muss in Eingabetextfeldern antworten und dann gibt es eine Ansicht, die alle diese Ergebnisse überprüft (das folgende).Wie kann ich diese Django-Ansicht vereinfachen?
Diese Ansicht funktioniert perfekt, aber ich weiß, dass ich ein Durcheinander mit Wörterbüchern und Listen gemacht habe. Ich dachte, diese nur zu erstellen, um eine Ergebnisvariable vorzubereiten, die ich dann auf der HTML-Seite drucken werde. Wie kann ich es vereinfachen?
def check(request):
# Initialize results
results = []
i = 0
for input_name, input_value in request.POST.items():
# Remove cfsr from inputs
if input_name.isdigit():
# Get the question from the input name
question = Question.objects.get(pk=input_name)
# Get the related correct answer to that question
answer = question.answer
# Create results
results.append({'question_text': question.text, 'user_answer': input_value,
'correct_answer': answer.text})
# Check if user answer is correct
if input_value == answer.text:
results[i]['is_correct'] = True
else:
results[i]['is_correct'] = False
i += 1
context = {'results': results}
return render(request, 'quiz/results.html', context)
Sie sollten versuchen, Formulare zu verwenden, um das Quiz zu erstellen und die Antworten überprüfen. – hop