Django中forms.DecimalField能否设默认值?表单设值报错怎么办?
如何给Django的forms.DecimalField设置默认值
当然可以给forms.DecimalField设置默认值,完全不需要在模型声明阶段指定——你遇到的错误是因为用错了参数名。
Django表单字段的默认值参数不是default(这个是模型字段的参数),而是initial。把代码里的default="0.00"改成initial="0.00"就能解决报错。
修正后的代码:
log_duration_minute = forms.DecimalField( help_text=_("log_duration_helper_text_minute"), initial="0.00", )
另外还有两种常用的设置默认值的方式:
- 如果是ModelForm,可在表单的
__init__方法里动态设置:
class YourForm(forms.ModelForm): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['log_duration_minute'].initial = "0.00"
- 实例化表单时传入
initial参数,适合根据上下文动态调整默认值的场景:
form = YourForm(initial={'log_duration_minute': "0.00"})
内容的提问来源于stack exchange,提问作者ayseguldmrblk
相关产品推荐
相关产品推荐

