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

Django中DateField表单控件无法显示默认值问题求助

Django中DateField表单控件无法显示默认值问题求助

大家好,我最近在Django开发中遇到了一个棘手的问题:我想给表单里的DateField设置默认日期,但页面上始终看不到这个默认值,不过查看页面HTML源码时,value属性明明已经带上了当前日期。

最开始我是这么写代码的:

class Foo(models.Model):
    date = models.DateField()

class FooForm(ModelForm):
    class Meta:
        model = Foo
        fields = "__all__"
        widgets = {
            "date": DateInput(
                format=("%d-%m-%Y"), 
                attrs={
                    "class": "form-control", 
                    "value": timezone.now().strftime("%d-%m-%Y"), 
                    "type": "date"
                }
            ),
        }

这段代码生成的HTML是这样的:

<input type="date" name="date" value="29-02-2024" class="input" prod_date="input" required="" id="id_date">

但页面上的日期输入框就是不显示这个默认值,连占位符效果都没有。

之后我按照建议修改了代码,把默认值设置到模型层面:

class Foo(models.Model):
    date = models.DateField(default=date.today)

class FooForm(ModelForm):
    class Meta:
        model = Foo
        fields = "__all__"
        widgets = {
            "date": DateInput(
                format=("%d-%m-%Y"), 
                attrs={"class": "form-control", "type": "date"}
            ),
        }

现在Django admin后台里的日期字段能正常显示默认值了,但前端的普通页面模板里还是看不到默认值,有没有大佬能帮我看看这是怎么回事呀?

备注:内容来源于stack exchange,提问作者xtlc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:49:36