python - Django Admin 中的欧洲日期输入

标签 python django date django-admin

Django 有一个 DATE_FORMAT 和一个 DATE_TIME_FORMAT 选项,允许我们在查看日期时选择要使用的格式,但显然不允许我在 Django 管理中编辑或添加时更改日期的输入格式。

管理员的默认值是:YYYY-MM-DD

但是使用起来会很棒:DD-MM-YYYY

这在任何情况下都集成在 i18n 中吗? 这可以在没有自定义模型的情况下更改吗?

最佳答案

Django ticket 6483 结束以来,现在有一种官方方法可以做到这一点& 发布 Django 1.2。

如果你有USE_L10N设置为 False,您应该做的是指定 DATE_INPUT_FORMATSDATETIME_INPUT_FORMATS在您的 settings.py 中。以下是我为此使用的设置,基于转换默认值:

#dd/mm/yyyy and dd/mm/yy date & datetime input field settings
DATE_INPUT_FORMATS = ('%d-%m-%Y', '%d/%m/%Y', '%d/%m/%y', '%d %b %Y',
                      '%d %b, %Y', '%d %b %Y', '%d %b, %Y', '%d %B, %Y',
                      '%d %B %Y')
DATETIME_INPUT_FORMATS = ('%d/%m/%Y %H:%M:%S', '%d/%m/%Y %H:%M', '%d/%m/%Y',
                          '%d/%m/%y %H:%M:%S', '%d/%m/%y %H:%M', '%d/%m/%y',
                          '%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d')

如果您将 USE_L10N 设置为 True,那么您将需要使用 FORMAT_MODULE_PATH相反。

例如,我的 LANGUAGE_CODE设置为 en-au,我的网站名为 golf,我的 FORMAT_MODULE_PATH 设置为 golf.formats ,所以我的目录结构如下所示:

golf/
    settings.py
    ...
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

并且 DATE_INPUT_FORMATSDATETIME_INPUT_FORMATS 设置位于 formats.py 而不是 settings.py

关于python - Django Admin 中的欧洲日期输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907351/

相关文章:

python - 将 numpy 数组绘制为直方图

Django 模板 : how to show dict whose key has a dot in it? d ['key.name' ]

java - APACHE POI 设置单元格样式清除现有日期格式

r - 查找特定日期属于哪个季节

c++ - 两个日期之间的天数 C++

python - Django 的搜索功能

python - 不从终端运行应用程序时, "print"到哪里?

python - Numpy 数组中的循环和搜索

python - view.py 中的 Django PasswordChangeForm 不工作

css - 添加静态文件目录以覆盖 Django 中的 CSS