2011-07-12 3 views
1

私は大きなジャンゴフォームを持っています。それは選択されているフィールドに依存する多くのデータを持っています。選択時にジャンゴフォームが変更される

例:

車はありますか? YES/NOドロップダウンボックス。

はい、私が作る追加のフィールドを表示したい場合は

/モデル/年/ CCなどなど

いいえ、私は隠されたそれらを維持したい場合は

これにはどのような方法が最適ですか?シンプルな表示/非表示divを使用してjqueryまたは何か私はやっている必要がありますが良いですか?

+1

私はjQueryを使ってこれを行います。 – Marcin

答えて

2

はい、クライアントサイドでJQueryでシンプルな表示/非表示を使用する必要があります。 サーバー側では、フォームのcleanメソッドで条件付き検証が必要な場合があります。他の項目が選択されている場合にのみ、が必要なフィールドをにする必要があります。例えば

class MyForm(Form): 
    ... 
    def clean(self): 
     cleaned_data = self.cleaned_data 
     has_car_required_fields = ['foo', 'bar', 'baz'] 
     if cleaned_data.has_key('has_car') and cleaned_data['has_car']: 
      for field_name in has_car_required_fields: 
       if not cleaned_data.has_key(field_name) or not cleaned_data[field_name]: 
        self._errors[field_name] = ErrorList([_(u'This field is required')]) 

     return cleaned_data 
+0

あなたは私がやっていることを計画しています。私は右の線に沿って(変化のために)歓声を考えていたように見えます! – Mark

関連する問題