使用Forms范式在Django中设计MCQ?

时间:2018-09-30 18:49:18

标签: django forms

我正在尝试在Django中设计一个简单的MCQ工具。 我的目标是得到类似的东西:

https://www.w3schools.com/quiztest/quiztest.asp?qtest=CSS

在设计和行为方面(例如,带有多个复选框的问题和一个将我定向到下一个问题的提交按钮,直到显示答案和得分的末尾),以便我可以建立自己的MCQ进行修改课程。

到目前为止,我设法将数据(即问题,答案等)存储在数据库中。我正在考虑使用以下表格:

[forms.py]

from django import forms
from .models import Proposition, Question

class ReadOnlyText(forms.TextInput):
  input_type = 'text'

  def render(self, name, value, attrs=None):
     if value is None: 
         value = ''
     return value


class QuestionForm(forms.Form):

    q1 = Question.objects.filter.all()[0]
    propositions = Proposition.objects.filter(question=q1)

    choices = ((p.index, p.proposition) for p in propositions)

    question = forms.CharField(widget=ReadOnlyText, label=q1.question)

    propositions = forms.MultipleChoiceField(
            required=True,
            widget=forms.CheckboxSelectMultiple,
            choices=choices,
        )

因此在此代码中,问题是我只查看数据库中的第一个问题(q1)。而且我不太确定如何传递下一个问题的数量,以了解用户何时单击提交按钮。

但是也许我在这里很难过,因为表单不适合该目的。

如果有人对以上内容有设计思路和解决方案,那么我将非常有兴趣阅读它们。

0 个答案:

没有答案