0

看看这个问题字段和 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.fields,而不是self.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 回答