看一下这个问题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
答案 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