3

次のようなModelFormを作成しようとすると

MyModelForm(instance=a_model_instance_)

__init__Djangoは、次のように、フォームのメソッド内で初期モデルフィールドを設定できないように見えます。

def __init__(self, *args, **kwargs):
    super(MyModelForm, self).__init__(*args, **kwargs)

    if self.instance.pk:
        if self.instance.my_field:
            my_field = self.instance.my_field
        else:
            # show parent's field instead
            my_field = self.instance.parent.my_field

        self.fields['my_field'].initial = my_field

__init__フォームがインスタンスにバインドされると、フォームのメソッド内のフィールドの初期化が機能しなくなる理由はありますか?

4

1 に答える 1

5

Noneの場合、他のモデルフィールド値からフィールドの初期値を設定したいと思います。

def __init__(self, *args, **kwargs):
    super(MyModelForm, self).__init__(*args, **kwargs)

    if self.instance.pk:
        if not self.initial.get('my_field'):
            self.initial['my_field'] = self.instance.parent.my_field
于 2013-01-10T15:27:53.247 に答える