You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:31:05