2012-09-25 8 views
5

Djangoで「空白を埋める」タイプのクイズを作成します。Djangoで空白の記入フォームを作成するには

質問の例は、「回答を__と__」にします。

基本的には、入力フィールドに "__"フィールドを置き換える出力が必要です。

また、入力フィールドに同じ「名前」が必要です。例:

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

空白のフィールドの数は無限です(可能性があります)。 django.formsを使ってどうやって行くのですか?

ありがとうございます。

+1

あなたが知っているだろうフォームのインスタンス化時に何個の空白が必要ですか? –

+4

書式を使用する:https://docs.djangoproject.com/en/dev/topics/forms/formsets/ –

+0

空白のフィールドの数は不明です。それは与えられた質問の "__"の数に依存します。今すぐformsetsを見て、どのように私はそれらを使用することができます参照してください。ありがとう! – CiB

答えて

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) 
関連する問題