这是形式的字段声明:
max_number = forms.ChoiceField(widget = forms.Select(), choices = ([('1','1'), ('2','2'),('3','3'), ]), initial='3', required = True,)
我想将初始值设置为3,这似乎不起作用。我玩过参数,引号/无引号等,但是没有变化。
3
如果有可能,谁能给我一个明确的答案?和/或对我的代码段进行必要的调整?
我正在使用Django 1.0
实例化表单时,请尝试设置初始值:
form = MyForm(initial={'max_number': '3'})
这并没有解决眼前的紧迫问题,但是此Q / A用于与尝试将选定值分配给相关的搜索ChoiceField。
ChoiceField
如果已经super().__init__在Form类中调用过,则应该更新form.initial字典,而不是field.initial属性。如果你学习form.initial(例如print self.initial,在调用之后super().__init__),它将包含所有字段的值。具有值None在字典将覆盖field.initial值。
super().__init__
field.initial
form.initial
print self.initial
例如
class MyForm(forms.Form): def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) # assign a (computed, I assume) default value to the choice field self.initial['choices_field_name'] = 'default value' # you should NOT do this: self.fields['choices_field_name'].initial = 'default value'