Как передать некоторые данные из html в представление django? Может, просто попробовать с помощью javascript?
Я вывожу некоторые вопросы по математике из базы данных Postgres. В упражнениях есть поле с правильными ответами; я передаю его в просмотр. Я хочу сравнить ответы, которые пользователь отправляет через форму, с правильными ответами. Как я могу передать правильные ответы (например, в виде списка) в представление, чтобы проверить, сколько из них правильные? Есть ли способ в Django ou я должен использовать JavaScript?
Это views.py
from django.shortcuts import render
from questoes.models import Questao
from .forms import CHOICES
from django.forms import formset_factory
# Create your views here.
#I'd like to use this function to compare the answers. In this part I'm getting the responses from the form
def get_respostas(request):
form = CHOICES(request.POST)
if request.method=='POST':
form0 = request.POST['form-0-NUMS']
form1 = request.POST['form-1-NUMS']
form2 = request.POST['form-2-NUMS']
form3 = request.POST['form-3-NUMS']
form4 = request.POST['form-4-NUMS']
# Id like to test here.
return render(request,"provas/teste.html")
def prova(request):
questoes = Questao.objects.order_by('?')[:5]
gabarito = []
for q in questoes:
gabarito.append(q.gabarito)
form = CHOICES
respostaFormSet = formset_factory(CHOICES, extra=5)
if request.method=='POST':
dados = {
'formset': formset,
'questoes': questoes,
'form':form(request.POST),
'gabarito':gabarito
}
return render(request,'provas/prova.html', dados)
else:
dados = {
'formset': formset,
'questoes': questoes,
'form':form,
'gabarito':gabarito
}
return render(request,'provas/prova.html', dados)
это prova.html
{% if questoes %}
<div class="container px-4 py-5">
{% for questao in questoes %}
<div class="bg-light m-3 p-5">
<h3>Questão {{ forloop.counter }}</h1>
<div id="layout_questao">
{{questao.texto|safe}}
</div>
</div>
{% endfor %}
<div class="bg-light m-3 p-5">
<h2>Marque suas repostas:</h1>
<br>
<form action="{% url 'get_respostas' %}" method="POST">
{% csrf_token %}
{{ formset.management_data }}
{{formset.as_p }}
<br>
<br>
<div class="d-flex justify-content-center">
<input class="btn btn-secondary" type="submit" value="Enviar Respostas">
</div>
</form>
</div>
{% endif %}
</div>