From 950b6de16ac2f8135612f2ed5984c090dd8e4dcf Mon Sep 17 00:00:00 2001 From: Martin Brochhaus Date: Mon, 19 May 2014 13:23:45 +0800 Subject: Fixed #20477: Allowed settings.FORMAT_MODULE_PATH to be a list of modules. Previously the FORMAT_MODULE_PATH setting only accepted one string (dotted module path). This is useful when using several reusable third party apps that define new formats. We can now use them all and we can even override some of the formats by providing a project-wide format module. --- docs/ref/settings.txt | 14 ++++++++++++++ docs/releases/1.8.txt | 5 ++++- docs/topics/i18n/formatting.txt | 17 +++++++++++++---- 3 files changed, 31 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt index 597e39ab99..926f0d300e 100644 --- a/docs/ref/settings.txt +++ b/docs/ref/settings.txt @@ -1378,6 +1378,20 @@ like:: __init__.py formats.py +.. versionchanged:: 1.8 + + You can also set this setting to a list of Python paths, for example:: + + FORMAT_MODULE_PATH = [ + 'mysite.formats', + 'some_app.formats', + ] + + When Django searches for a certain format, it will go through all given + Python paths until it finds a module that actually defines the given + format. This means that formats defined in packages farther up in the list + will take precedence over the same formats in packages farther down. + Available formats are :setting:`DATE_FORMAT`, :setting:`TIME_FORMAT`, :setting:`DATETIME_FORMAT`, :setting:`YEAR_MONTH_FORMAT`, :setting:`MONTH_DAY_FORMAT`, :setting:`SHORT_DATE_FORMAT`, diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt index 6b0cb85058..22d8ca7d20 100644 --- a/docs/releases/1.8.txt +++ b/docs/releases/1.8.txt @@ -133,7 +133,10 @@ Forms Internationalization ^^^^^^^^^^^^^^^^^^^^ -* ... +* :setting:`FORMAT_MODULE_PATH` can now be a list of strings representing + module paths. This allows importing several format modules from different + reusable apps. It also allows overriding those custom formats in your main + Django project. Management Commands ^^^^^^^^^^^^^^^^^^^ diff --git a/docs/topics/i18n/formatting.txt b/docs/topics/i18n/formatting.txt index 04b36e2767..94b2eed8ee 100644 --- a/docs/topics/i18n/formatting.txt +++ b/docs/topics/i18n/formatting.txt @@ -154,11 +154,20 @@ Django provides format definitions for many locales, but sometimes you might want to create your own, because a format files doesn't exist for your locale, or because you want to overwrite some of the values. -To use custom formats, specify the path where you'll place format files first. -To do that, just set your :setting:`FORMAT_MODULE_PATH` setting to the package -where format files will exist, for instance:: - FORMAT_MODULE_PATH = 'mysite.formats' +.. versionchanged:: 1.8 + + The ability to specify FORMAT_MODULE_PATH as a list was added. Previously, + only a single string value was supported. + +To use custom formats, specify the path where you'll place format files +first. To do that, just set your :setting:`FORMAT_MODULE_PATH` setting to +the package where format files will exist, for instance:: + + FORMAT_MODULE_PATH = [ + 'mysite.formats', + 'some_app.formats', + ] Files are not placed directly in this directory, but in a directory named as the locale, and must be named ``formats.py``. -- cgit v1.3