基本字段初始值未从__init__函数设置

时间:2012-08-14 09:37:30

标签: python django

看一下这个问题fields and 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

1 个答案:

答案 0 :(得分:0)

确保super方法中的__init__来电先出,然后在self.fields中修改字段的初始值,而不是self.base_fields

    def __init__(self, *args, **kwargs):
       super(NewFlatpageForm, self).__init__(*args, **kwargs)
       self.fields['template_name'].initial = 5