6

我想在 Django 中创建一个“填空”类型的测验。

示例问题是“将您的答案放在 __ 和 __。”

所以基本上,我想要一个用输入字段替换“__”字段的输出。

另外,我希望输入字段具有相同的“名称”。例子:

<input id="id_1" type="text" name="blank[]" />
<input id="id_2" type="text" name="blank[]" />

空白字段的数量(可能)是无限的。如何使用 django.forms 进行处理?

谢谢你。

4

1 回答 1

0

据我了解,您有一个需要进行测验的字段列表。所以列表看起来像这样:

questions = (
  ('Place your 1 answers %s and %s.', ('field_1_1', 'field_2_2')),
  ('Place your 2 answers %s and %s.', ('field_2_1', 'field_2_2')),
)

您可以像这样为每个字段创建表单:

class QuizzForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super(QuizzForm, self).__init__(*args, **kwargs)
        for question in questions:
            for field in question[1]:
                self.fields[field] = forms.ChoiceField()

并在与此类似的帖子后访问字段:

if form.is_valid():
    for question in questions:
        for field in question[1]:
            answer = form.cleanded_data.get(field)
于 2012-10-01T18:56:21.810 回答