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

Django中如何将datepicker日期格式从mm/dd/yyyy改为dd-mm-yyyy

问题:datepicker日期格式修改为dd-mm-yyyy不生效

我尝试将datepicker的日期格式从mm/dd/yyyy修改为dd-mm-yyyy,目前已在settings.py中配置DATE_INPUT_FORMATS为['%d-%m-%Y'],但未生效;之后参考相关方案通过jQuery修改,也没有效果,相关JS代码如下:

<script type="text/javascript">
    $(function () {
        $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
    });
</script>

这是看似十分基础的问题,但我暂时找不到解决方案。以下是forms.py的相关代码:

class Calendar(forms.DateInput):
    input_type = 'date'


class AdForm(forms.ModelForm):
    time_limit = forms.DateInput(format=['%d-%m-%Y'])
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['time_limit'].widget.attrs.update({'class': 'form-control mb-3 datepicker'})
    class Meta:
        model = Ad
        fields = ('time_limit')
        widgets = {
            'time_limit': Calendar(),
        }

配置完成后最终显示效果仍然不符合预期,效果截图如下:
效果截图


解决方案

你配置不生效是多个配置冲突、写法错误共同导致的,按以下步骤修正即可:

  • 第一个错误:你自定义的Calendar小组件设置了input_type = 'date',会调用浏览器原生的日期选择器,优先级远高于jQuery UI datepicker,而且原生日期选择器的显示格式跟随系统/浏览器语言设置,无法通过配置强制修改
  • 第二个错误:jQuery选择器匹配错误,你给输入框加的是datepicker类名,但代码里用的是ID选择器$('#datepicker'),匹配不到元素自然不生效
  • 第三个错误:AdForm字段定义错误,time_limit直接定义为了小组件类forms.DateInput,正确应该是定义为forms.DateField再指定widget参数,同时Meta里的widget配置重复覆盖了字段上的配置,存在冲突

修正步骤

  1. 首先修改forms.py代码:
class Calendar(forms.DateInput):
    # 删掉input_type = 'date'行,默认使用text类型才能适配jQuery datepicker
    pass


class AdForm(forms.ModelForm):
    # 正确定义日期字段,指定输入格式和组件属性
    time_limit = forms.DateField(
        input_formats=['%d-%m-%Y'],
        widget=Calendar(attrs={'class': 'form-control mb-3 datepicker'})
    )
    class Meta:
        model = Ad
        fields = ('time_limit',) # 单元素元组必须加逗号,否则会被识别为字符串
        # 删除Meta中重复的widgets配置
  1. 修正jQuery代码,改用类选择器匹配元素:
$(function () {
    // 把ID选择器#改为类选择器.
    $('.datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
});
  1. 确认settings.py中配置USE_L10N = False,否则Django会根据区域设置自动覆盖你定义的日期输入格式,保留DATE_INPUT_FORMATS = ['%d-%m-%Y']即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:15:03