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

Django:bootstrapdatetimepicker日期格式不被表单组件识别求助

解决Django表单DateTimeField与bootstrapdatetimepicker格式不匹配的问题

看起来你遇到的核心问题是Django后端表单验证时未识别你设置的荷兰日期格式——虽然你在前端widget和datetimepicker里配置了格式,但Django的DateTimeField默认使用的输入格式列表里不包含DD-MM-YYYY HH:mm:ss这种格式,所以提交时会抛出“格式无效”的错误。

问题根源

Django的DateTimeField默认的input_formats是:

['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d']

你前端提交的是DD-MM-YYYY HH:mm:ss格式的字符串,不在这个默认列表里,所以后端验证无法解析,导致报错。而你在widgets里设置的format只是控制前端输入框的显示格式,不会影响后端的验证规则。

解决方案

你需要在表单的DateTimeField中明确指定input_formats,把你使用的荷兰格式添加进去,有两种实现方式:

方式1:显式定义表单字段

在forms.py里直接重新定义date字段,同时指定input_formats和对应的widget:

from django import forms
from .models import Quotation

class QuotationForm(forms.ModelForm):
    # 显式定义date字段,添加自定义输入格式
    date = forms.DateTimeField(
        input_formats=['%d-%m-%Y %H:%M:%S'],
        widget=forms.DateTimeInput(
            attrs={'id': 'datetimepicker1'},
            format='%d-%m-%Y %H:%M:%S'
        )
    )

    class Meta:
        model = Quotation
        fields = ['full_name', 'organisation', 'address', 'date', 'type', 'description', 'budget']

方式2:在表单初始化时修改字段属性

如果你不想重新定义字段,可以在表单的__init__方法中修改date字段的input_formats:

from django import forms
from .models import Quotation

class QuotationForm(forms.ModelForm):
    class Meta:
        model = Quotation
        fields = ['full_name', 'organisation', 'address', 'date', 'type', 'description', 'budget']
        widgets = {
            'date': forms.DateTimeInput(
                attrs={'id': 'datetimepicker1'},
                format='%d-%m-%Y %H:%M:%S'
            )
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 为date字段设置自定义输入格式
        self.fields['date'].input_formats = ['%d-%m-%Y %H:%M:%S']

额外检查点

  1. 确认前端datetimepicker的格式设置和后端完全匹配:你已经设置了format:'DD-MM-YYYY HH:mm:ss',这和Python的%d-%m-%Y %H:%M:%S是对应的,这部分没问题。
  2. 如果你使用了crispy forms,确保它没有覆盖widget的属性(通常不会,但如果有自定义布局可以检查一下)。

这样修改后,后端就能正确解析前端提交的荷兰格式日期时间,不会再抛出格式无效的错误了。

内容的提问来源于stack exchange,提问作者Jasper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:46