2017-09-27 5 views
0

ModelFormでは、他のフィールドに依存するフィールドがいくつかあります。例えば、Django ModelFormはコンテキストにデータを追加します

class FactorForm(ModelForm): 
    //field definitions 

    class Meta: 
     model=Factor 
     fields=['name', 'type', 'sets'] 

setsはまた、選択されtypeに依存することを選択しています。 typeが変更された場合、setsのオプションを更新する必要があります。したがって、テンプレートのフィールドのリスト(つまり、refresh = ['type'])を指定したいので、指定されたフィールドが変更されたときにJavaScript関数がフォームを置き換えることができます。

フォームのコンテキストにランダムデータを挿入するにはどうすればよいですか?

get_context_dataを一般的なCBVで上書きすることでこれを行うことができます。しかし、ModelFormにはそのようなメソッドはありません。

好ましくは、私はメタの下で私のさわやかなフィールドをModelFormParent機能に共通のロジックを入れて、リストアップしたいと思います:

class FactorForm(ModelFormParent): 
    //field definitions 

    class Meta: 
     model=Factor 
     fields=['name', 'type', 'sets'] 
     refresh=['type'] 

答えて

0

オーバーライドのinit:テンプレート内

class FactorForm(ModelForm): 
    //field definitions 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 
     self.refresh = ['type'] 

そしてを:

// something like: 
{{ form.refresh }} 
関連する問題