2009-06-16 3 views
6

Где должно быть установлено DATETIME_FORMAT, чтобы он имел эффект при отображении даты на административном сайте Django (интерфейс автоматического администрирования Django)?Как я могу активировать DATETIME_FORMAT Django?

Документация для DATETIME_FORMAT, на странице 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." 

Update 1: DATETIME_FORMAT разорвано (значение ней игнорируется), несмотря на документацию. Много лет назад он работал , но с тех пор реализация Django была сломанной wrt. эта особенность. Кажется, сообщество Django не может решить, как его исправить (но пока я думаю, что должен удалить DATETIME_FORMAT из документации или добавить записку об этой проблеме).

Я поставил эти строки в файл «settings.py» на сайта/проекта (а не приложение), но это, кажется, не имеют никакого эффекта (после перезагрузки сервера разработки):

DATETIME_FORMAT = 'Ymd H: я: Šo'

DATE_FORMAT = 'Ymd'

В качестве примера "29 июня 2009, 7:30 вечера" отображается при с использованием сайта администратора Django.

Версия Django 1.0.2 финала и версия Python 2.6.2 (64 бит). Платформа: Windows XP 64 бит.

Stack Overflow вопрос European date input in Django Admin, кажется, о точной задаче противоположного (и, таким образом, очевидном противоречии ).

Полный путь к файлу "settings.py": "D: \ dproj \ MSQall \ website \ GoogleCodeHost \ settings.py". Теперь я сервер разработки таким образом (в командной строке Windows окна строки):

кд D: \ dproj \ MSQall \ сайт \ GoogleCodeHost

набор DJANGO_SETTINGS_MODULE = GoogleCodeHost.settings

python manage.py runningerver 6800

Нет никакой разницы. Кроме того, они положительно считывают из настроек файла.ру ":

DATABASE_NAME

INSTALLED_APPS

TEMPLATE_DIRS

MIDDLEWARE_CLASSES

"django-admin.py startproject XYZ" не создает файл "settings.py" содержащие DATETIME_FORMAT или DATE_FORMAT. Возможно, есть основания для что?

Последовательность "d:", "CD D: \ dproj \ MSQall \ сайт \ GoogleCodeHost", "питон manage.py оболочки", "из настроек django.conf импорта", "settings.DATE_FORMAT" , «settings.DATETIME_FORMAT» выходы (как и ожидалось):

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

так содержание файла «settings.py» читается, но не вступит в силу в интерфейсе администратора Django.

+0

У вас есть settings.py, назначенный как модуль настроек? http://docs.djangoproject.com/ru/dev/topics/settings/#designating-the-settings – jitter

+0

http://stackoverflow.com/questions/7737146/django-template-date-format может быть обманом для это, но вопрос там менее точный –

ответ

1

Это позволит решить конкретную проблему, которая не представляется возможным с DATETIME_FORMAT (как это игнорируется в текущей реализации Django несмотря на документацию), загрязнен слишком и похож на ответ Аяз (в менее глобальный - будет влиять только на мнение администратора список сайтов):

Сразу после линии

(date_format, DATETIME_FORMAT, time_format) = get_date_formats()

в файле (Django, как правило, в папке Lib/сайта-пакетов в установка Python)

Джанго/вно/админ/templatetags/admin_list.ру

перезаписать значение DATETIME_FORMAT (для models.DateTimeField в модели):

DATETIME_FORMAT = 'YMD H: I: Так'

А для Дата- только поля:

date_format = 'Ymd'

Перезапуск веб-сервера (напр. сервер разработки) или Выход из интерфейса администратора NOT, необходимый для Это изменение вступит в силу. Простое обновление в веб-браузере - это все, что требуется.

1

Две директивы настройки должны быть определены в settings.py. Не могли бы вы убедиться, что тот же самый settings.py, который вы редактируете, читается при запуске сервера разработки?

Вы всегда могли упасть в интерактивной оболочке Python, запустив python manage.py shell и запустить эти команды, чтобы убедиться, являются ли значения формата даты/времени получают путем штрафа:

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

Ok, я забыл посмотреть его , но ticket #2203 имеет дело с этим. К сожалению, билет остается в ожидании.

Я помню, что для проекта, который использовал определенную ревизию Ствол 0,97 филиала Джанго, я работал вокруг этого путем перезаписи date_format и datetime_format значения в функции get_date_formats() внутри django/utils/translation/trans_real.py. Это было грязно, но я уже использовал собственный Django для этого проекта, поэтому не видел ничего плохого в том, чтобы взломать его мелочь.

1

Как рассказал Чиро Сантилли, формат локализации переопределяет DATETIME_FORMAT в настройках при USE_L10N = True. Но вы все равно можете переопределить DATETIME_FORMAT и другие форматы даты и времени на creating custom format files as described in Django documentation.

Подробный ответ here.

Смежные вопросы