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

如何在不覆盖默认值的情况下向Django的DATE_INPUT_FORMATS添加日期格式?

如何在Django的DATE_INPUT_FORMATS中追加自定义格式(不覆盖默认)

嘿,这个需求很容易实现,完全不用覆盖默认的格式列表,咱们可以通过扩展默认设置的方式来搞定:

核心思路

Django的默认DATE_INPUT_FORMATS定义在django.conf.global_settings里,我们只需要在项目的settings.py中导入这个默认列表,再把自定义格式拼接进去就行——既保留所有默认格式,又能添加自己需要的规则。

具体实现步骤

  1. 在项目根目录的settings.py文件顶部,导入全局默认设置:
from django.conf import global_settings
  1. 定义DATE_INPUT_FORMATS,将默认列表与你的自定义格式拼接:
DATE_INPUT_FORMATS = global_settings.DATE_INPUT_FORMATS + (
    '%d-%b-%Y',  # 这里替换成你需要的自定义日期格式
)

额外小技巧

如果你希望Django优先匹配你的自定义格式(而不是先检查默认格式),只需要把自定义格式放在拼接的前面:

DATE_INPUT_FORMATS = (
    '%d-%b-%Y',  # 自定义格式优先匹配
) + global_settings.DATE_INPUT_FORMATS

举个实际例子

假设你需要添加"日/月/年"格式(比如25/12/2024),对应的格式字符串是%d/%m/%Y,那么最终代码就是:

from django.conf import global_settings

DATE_INPUT_FORMATS = global_settings.DATE_INPUT_FORMATS + (
    '%d/%m/%Y',
)

这样设置后,Django会同时支持所有默认的日期输入格式,以及你添加的自定义格式啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:39:32