, когда я отправляю эту форму, мне всегда возвращается только значение идентификатора 1, а когда я пытался заменить другое значение, которое я написал 2, мне действительно возвращалось это значение. потом я понял, что этот процесс l oop не работает, и я знал это из-за (возврата). Итак, мне нужно знать, как я могу вернуть идентификатор всего объекта и поместить его в объекты my_result
views.py
from django.shortcuts import render
from .models import Section, Question, Result
from django.http import HttpResponseNotFound
def index(request):
text = "this is from views of exam app!"
return render(request, 'exam/index.html', {'text': text})
def section_list(request):
try:
sections = Section.objects.all()
except:
return HttpResponseNotFound("Error")
return render(request, 'exam/section.html', {'portals': sections})
def my_question(request, q_id):
sections = Section.objects.get(id=q_id)
template_name = 'exam/question.html'
try:
answer = request.POST['answer']
for result in Result.objects.all():
result_id = result.result_question_id
my_result = Result.objects.filter(id=result_id)
return render(request, template_name, {'repr': repr(my_result)})
except:
return render(request, template_name, {'sections': sections, 'error_message': 'You have to select one of the following answer'})
return render(request, template_name, {'sections': sections})
urls.py
from . import views
from django.urls import path
from django.conf.urls import url
app_name = "exam"
urlpatterns = [
# /index/
path('', views.index, name="index"),
# /index/section/
path('portal/', views.section_list, name="portal"),
# /index/question/10/
path(r'question/<int:q_id>/', views.my_question, name="question"),
]
моделей. py
from django.db import models
class Section(models.Model):
portal = models.CharField(max_length=100)
def __str__(self):
return self.portal
class Question(models.Model):
section = models.ForeignKey(Section, on_delete=models.CASCADE)
question = models.CharField(max_length=100)
choice = models.BooleanField(default=False)
ans1 = models.CharField(max_length=100)
ans2 = models.CharField(max_length=100)
ans3 = models.CharField(max_length=100)
ans4 = models.CharField(max_length=100)
def __str__(self):
return self.question
class Result(models.Model):
result_question = models.ForeignKey(Question, on_delete=models.CASCADE)
result = models.CharField(max_length=100)
def __str__(self):
return self.result
вопрос. html
{% extends 'base.html' %}
{% block title %} Question Page {% endblock %}
{% block body %}
{% if error_message %}
<div class="notes">
<div class="container">
<div class="alert alert-info">
<strong>Info!</strong> {{ error_message }}
</div>
</div>
</div>
{% endif %}
<div class="questions">
<div class="container">
{% for section in sections.question_set.all %}
<h2>{{ section.question }}</h2>
<form method="post">
{% csrf_token %}
<div class="answer">
<input type="radio" name="answer" id="{{ section.ans1 }}" value="{{ section.ans1 }}">
<label for="{{ section.ans1 }}">{{ section.ans1 }}</label>
{% if false_answer %}
<span class="false-message">{{ false_answer }}</span>
{% elif true_answer %}
<span class="true-message">{{ true_answer }}</span>
{% endif %}
</div>
<div class="answer">
<input type="radio" name="answer" id="{{ section.ans2 }}" value="{{ section.ans2 }}">
<label for="{{ section.ans2 }}">{{ section.ans2 }}</label>
{% if false_answer %}
<span class="false-message">{{ false_answer }}</span>
{% elif true_answer %}
<span class="true-message">{{ true_answer }}</span>
{% endif %}
</div>
<div class="answer">
<input type="radio" name="answer" id="{{ section.ans3 }}" value="{{ section.ans3 }}">
<label for="{{ section.ans3 }}">{{ section.ans3 }}</label>
{% if false_answer %}
<span class="false-message">{{ false_answer }}</span>
{% elif true_answer %}
<span class="true-message">{{ true_answer }}</span>
{% endif %}
</div>
<div class="answer">
<input type="radio" name="answer" id="{{ section.ans4 }}" value="{{ section.ans4 }}">
<label for="{{ section.ans4 }}">{{ section.ans4 }}</label>
{% if false_answer %}
<span class="false-message">{{ false_answer }}</span>
{% elif true_answer %}
<span class="true-message">{{ true_answer }}</span>
{% endif %}
</div>
<button class="btn btn-success">Next</button>
{{ section.id }}
{{ result.result_question_id }}
</form>
{% endfor %}
{% if repr %}
{{ repr }}
{% endif %}
</div>
</div>
{% endblock %}