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 に答える