关于使用FORMAT_MODULE_PATH的建议

0 投票
2 回答
1230 浏览
提问于 2025-04-16 12:48

根据我所了解,FORMAT_MODULE_PATH 这个设置可以让我们使用自定义的格式。

我想知道如何在我的应用程序中访问DATETIME_INPUT_FORMATS中的第一个值?

对于德语,DATETIME_INPUT_FORMATS的值应该是'%d.%m.%Y',而对于英语则应该是'%Y-%m-%d'。我想根据语言使用formats.py文件中的这些值。

我按照Django文档中的说明来使用FORMAT_MODULE_PATH这个变量,但结果却不是我预期的。

settings.py:
    USE_L10N = True
    USE_I18N = True
    FORMAT_MODULE_PATH = 'myproject.formats'


myproject/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py
        de/
            __init__.py
            formats.py

我把浏览器的语言从英语改成德语,然后再改回来,但日期格式没有任何变化。它始终显示'%Y-%m-%d'。显示的日期格式是settings.DATE_INPUT_FORMATS[0]的值。

我使用的Django版本是1.2.5,Python版本是2.5.4。

2 个回答

2

在Django 1.3中,我有这个设置可以正常工作:

settings.py 文件中:

USE_I18N = True
USE_L10N = True
TIME_ZONE = 'Europe/Amsterdam'
LANGUAGE_CODE = 'nl_NL'
FORMAT_MODULE_PATH = 'settings.locale'

settings/locale/nl/formats.py 文件中:

DATETIME_FORMAT = 'j F Y \o\m H:i'
0

我没法通过设置 FORMAT_MODULE_PATH 来让它工作,但我用 formats.get_format('DATE_INPUT_FORMATS')[0] 成功解决了这个问题。你可以在 我的回答 中找到更多信息。

撰写回答