diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index b8d4d06e58..a95a956234 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -154,6 +154,18 @@ MEDIA_ROOT = '' # Example: "http://media.lawrence.com" MEDIA_URL = '' +# Default formatting for date objects. See all available format strings here: +# http://www.djangoproject.com/documentation/templates/#now +DATE_FORMAT = 'N j, Y' + +# Default formatting for datetime objects. See all available format strings here: +# http://www.djangoproject.com/documentation/templates/#now +DATETIME_FORMAT = 'N j, Y, P' + +# Default formatting for time objects. See all available format strings here: +# http://www.djangoproject.com/documentation/templates/#now +TIME_FORMAT = 'P' + ############## # MIDDLEWARE # ############## diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index b188f58947..c4bbee633f 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -10,7 +10,7 @@ from django.models.admin import log from django.utils.html import strip_tags from django.utils.httpwrappers import HttpResponse, HttpResponseRedirect from django.utils.text import capfirst, get_text_list -from django.conf.settings import ADMIN_MEDIA_PREFIX +from django.conf.settings import ADMIN_MEDIA_PREFIX, DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT import operator # Text to display within changelist table cells if the value is blank. @@ -401,13 +401,15 @@ def change_list(request, app_label, module_name): result_repr = getattr(result, 'get_%s' % f.name)() else: result_repr = EMPTY_CHANGELIST_VALUE - # Dates are special: They're formatted in a certain way. - elif isinstance(f, meta.DateField): + # Dates and times are special: They're formatted in a certain way. + elif isinstance(f, meta.DateField) or isinstance(f, meta.TimeField): if field_val: if isinstance(f, meta.DateTimeField): - result_repr = dateformat.format(field_val, 'N j, Y, P') + result_repr = capfirst(dateformat.format(field_val, DATETIME_FORMAT)) + elif isinstance(f, meta.TimeField): + result_repr = capfirst(dateformat.time_format(field_val, TIME_FORMAT)) else: - result_repr = dateformat.format(field_val, 'N j, Y') + result_repr = capfirst(dateformat.format(field_val, DATE_FORMAT)) else: result_repr = EMPTY_CHANGELIST_VALUE row_class = ' class="nowrap"' diff --git a/docs/settings.txt b/docs/settings.txt index e5dd32f4c1..f14d48b257 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -258,6 +258,32 @@ Default: ``''`` (Empty string) The username to use when connecting to the database. Not used with SQLite. +DATE_FORMAT +----------- + +Default: ``'N j, Y'`` (e.g. ``Feb. 4, 2003``) + +The default formatting to use for date fields on Django admin change-list +pages -- and, possibly, by other parts of the system. See +`allowed date format strings`_. + +See also DATETIME_FORMAT and TIME_FORMAT. + +.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now + +DATETIME_FORMAT +--------------- + +Default: ``'N j, Y, P'`` (e.g. ``Feb. 4, 2003, 4 p.m.``) + +The default formatting to use for datetime fields on Django admin change-list +pages -- and, possibly, by other parts of the system. See +`allowed date format strings`_. + +See also DATE_FORMAT and TIME_FORMAT. + +.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now + DEBUG ----- @@ -482,6 +508,19 @@ Default: ``('django.core.template.loaders.filesystem.load_template_source',)`` A tuple of callables (as strings) that know how to import templates from various sources. See the `template documentation`_. +TIME_FORMAT +----------- + +Default: ``'P'`` (e.g. ``4 p.m.``) + +The default formatting to use for time fields on Django admin change-list +pages -- and, possibly, by other parts of the system. See +`allowed date format strings`_. + +See also DATE_FORMAT and DATETIME_FORMAT. + +.. _allowed date format strings: http://www.djangoproject.com/documentation/templates/#now + TIME_ZONE ---------