代码之家  ›  专栏  ›  技术社区  ›  Peter Mortensen icecrime

如何激活Django的DATETIME\u格式?

  •  9
  • Peter Mortensen icecrime  · 技术社区  · 15 年前

    DATETIME_格式应该放在哪里才能生效 在Django管理站点中显示日期时间 (Djangos自动管理界面)?

    DATETIME_格式的文档,第页 http://docs.djangoproject.com/en/1.0/ref/settings/

    "The default formatting to use for datetime fields on
    Django admin change-list pages -- and, possibly, by
    other parts of the system."
    

    更新1 虽然成功了,但从那时起,Django的实现就一直是 破碎的wrt。这项功能。看来Django社区 无法决定如何修复(但同时我认为他们 应从文档中删除DATETIME_格式或添加 有关此问题的注释(请参阅)。

    我已将这些行放入 网站/项目(不是应用程序),但似乎没有 任何影响(重新启动开发服务器后):

    日期\格式='Y-m-d'

    例如,“2009年6月29日,下午7:30”在

    Django版本是1.0.2最终版本,Python版本是2.6.2 (64位)。平台:Windows XP 64位。

    堆栈溢出问题 European date input in Django Admin 矛盾)。

    文件“settings.py”的完整路径为 “D:\dproj\MSQall\website\GoogleCodeHost\settings.py”。我现在 行窗口):

    cd D:\dproj\MSQall\website\GoogleCodeHost

    没有区别。此外,这些都是积极阅读

    数据库名称

    已安装的应用程序

    模板目录

    “settings.py”包含日期时间格式或日期格式。 也许这是有原因的吧?

    序列“d:”,“cd d:\dproj\MSQall\website\GoogleCodeHost”, “python manage.py shell“,”来自django.conf导入设置“, (如预期的那样):

    'Y-m-d H:i:sO'
    'Y-m-d'
    

    因此,正在读取文件“settings.py”的内容,但确实如此

    4 回复  |  直到 4 年前
        1
  •  13
  •   Ciro Santilli OurBigBook.com    8 年前

    与:

    USE_L10N = False
    

    DATE_TIME 生效,因为l10n覆盖的本地化 DATETIME_FORMAT DATE_FORMAT 记录于: https://docs.djangoproject.com/en/1.9/ref/settings/#date-format

        2
  •  4
  •   Nimantha Thatkookooguy    3 年前

    正如Ciro Santilli所说,本地化格式覆盖了 DATETIME_FORMAT 在设置中,当 USE_L10N = True . 但你仍然可以覆盖 日期时间格式 和其他日期/时间格式 creating custom format files as described in Django documentation

    见详细答案 here .

    DATE_FORMAT 日期时间格式 , TIME_FORMAT 以及其他日期/时间格式 使用\u L10N=True creating custom format files as described in Django documentation .

    总之:

    1. 设置 FORMAT_MODULE_PATH = 'yourproject.formats' 在里面 settings.py
    2. 创建目录结构 yourproject/formats/en en __init__.py 将文件复制到所有目录,使其成为有效的Python模块
    3. 添加 formats.py 指向叶目录,其中包含要覆盖的格式定义,例如。 DATE_FORMAT = 'j. F Y' .

    here .

        3
  •  3
  •   Peter Mortensen icecrime    15 年前

    使用DATETIME_格式(在当前Django中被忽略) 实现(尽管有文档),也是肮脏的 与ayaz的答案类似(不太全球化-只会影响

    就在队伍后面

    (日期格式、日期时间格式、时间格式)=获取日期格式()

    在文件中(Django通常位于

    django/contrib/admin/templatetags/admin_list.py

    覆盖datetime_格式的值(对于 模型中的models.datetime字段):

    对于仅日期字段:

    日期\格式='Y-m-d'

    重新启动web服务器(如开发服务器)或 退出管理界面是不正确的 这一改变将生效。在web浏览器中进行简单的刷新

        4
  •  2
  •   ayaz    15 年前

    应在中定义这两个设置指令 settings.py . 你能保证同样的情况吗 启动开发服务器时是否正在读取您正在编辑的文件?

    python manage.py shell ,并运行以下命令以确保日期/时间格式值是否正确通过:

    from django.conf import settings
    settings.DATE_FORMAT
    settings.DATETIME_FORMAT
    

    ticket #2203 处理这个问题。不幸的是,票证仍处于挂起状态。

    date_format datetime_format 价值观 get_date_formats() 内部功能 django/utils/translation/trans_real.py . 它是肮脏的,但我已经在那个项目中使用了某种定制的Django,所以我没有看到任何问题。