Там есть список всех вопросов с правильными и неправильными (оценки, если вопрос неправильный и правильный) с кнопкой «Добавить», прикрепленной к каждому.
Когда я нажимаю кнопку «Добавить», вопрос добавляется в викторину в QuestionQuiz
, модель вместе со своими баллами, правильными значениями +1 и неверными -1, обновляются в базе данных.
Соответствующие вопросы Идентификатор отправляется через URL-адрес в виде представления изображения, прикрепленном ниже: path('filter_list/<pk>',views.FilterQuestionView.as_view(),name='filter'),
Чего я хочу достичь, так это того, что при начальной загрузке страницы я хочу показать оценки по соответствующему вопросу на основе идентификатор опроса, полученный из базы данных. Как я могу получить все название и описание вопроса, и если вопрос добавлен в викторину или нет
Каким будет django способ добиться этого?
Может быть, есть возможность получить все данные, включая те, которые уже добавлены в викторину, например, его текущие выборки title,description
остальные поля - stati c
Я могу изменить выборку title,decription,correct,incorrect,flag(true if added to current quiz_id else false)
Изображение прикреплено
Предположим, к вопросу добавлен вопрос. Текст в кнопке должен быть ДОБАВЛЕНО , и правильные и неправильные должны обновляться при первоначальной загрузке страницы. Здесь первый вопрос добавлен в викторину. ПРИМЕЧАНИЕ. Значение = 1 - это значения по умолчанию, которые обновляются пользователем для правильных и неправильных значений.
Ниже приводится модель, которую я создал:
class Question(models.Model):
title = models.CharField(max_length=255 )
description = models.TextField(max_length=300)
class Quiz(models.Model):
name = models.CharField(max_length=225,blank=False )
quiz_type =models.IntegerField(choices=QUIZ_TYPE,default=0)
questions = models.ManyToManyField( Question, through='QuestionQuiz', related_name="quiz_question")
categories= models.ManyToManyField(Category,through='CategoryQuiz',related_name='quiz_category')
class QuestionQuiz(models.Model):
quiz = models.ForeignKey(Quiz,on_delete=models.CASCADE)
question = models.ForeignKey(Question,on_delete=models.CASCADE)
correct =models.DecimalField(max_digits=4, decimal_places=3)
incorrect= models.DecimalField(max_digits=4, decimal_places=3)
class Meta:
unique_together = ('quiz','question')
Views.py - Использовал пакет django_filter для создания фильтра
class FilterQuestionView( AddQuestionAjaxFormMixin,FormMixin,FilterView):
form_class = QuestionQuizForm
filterset_class = QuestionFilter
paginate_by = 5
context_object_name = 'questions'
Это шаблон:
{% for question in questions %}
<tr>
<form method='POST' id="q_{{question.id}}">
<td>{{question.title}}</td>
<td>{{question.description}}</td>
<td><input type="text" value="1" id="correct_{{question.id}}"></td>
<td><input type="text" value="1" id="incorrect_{{question.id}}"></td>
<td>
<a id="btn_{{question.id}}" class="btn purple-gradient" onclick="addRemoveQuestion({{question.id}},{{quiz}})" >Add</a>
</td>
</form>