0

この質問fields と base_fields - Django を見てください。選択の代わりにこのフィールドのイニシャルを設定する必要があることを除いて、正確なことをしたい. その質問の回答にも記載されているように、回線の順序を入れ替えましたが、フロントエンドで初期設定値を取得していません。でコードをチェックしようとしたときにpdb、エラーが発生せず、値も5に正常に設定されました

class NewFlatpageForm(FlatpageForm):
        template_name = forms.ChoiceField(choices = [])
        def __init__(self, *args, **kwargs):
           super(NewFlatpageForm, self).__init__(*args, **kwargs)
           self.base_fields['template_name'].initial = 5
4

1 に答える 1

0

super呼び出しがメソッドで最初に行われることを確認してから、 ではなく__init__でフィールドの初期値を変更します。self.fieldsself.base_fields

    def __init__(self, *args, **kwargs):
       super(NewFlatpageForm, self).__init__(*args, **kwargs)
       self.fields['template_name'].initial = 5
于 2012-08-14T16:08:26.807 に答える