2009-06-16 13 views
6

Gdzie należy umieścić DATETIME_FORMAT, aby miał on efekt na wyświetlaczu daty i godziny w administracyjnym serwisie Django (automatyczny interfejs administracyjny Django)?Jak włączyć DATIMEIME_FORMAT Django?

Dokumentacja DATETIME_FORMAT, na stronie http://docs.djangoproject.com/en/1.0/ref/settings/, mówi:

"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 jest uszkodzony (wartość niego jest ignorowane), mimo dokumentacji. Wiele lat temu działało, ale od tego czasu implementacje Django zostały uszkodzone w postaci . ta cecha. Wygląda na to, że społeczność Django nie może zdecydować, jak to naprawić (ale w międzyczasie uważam, że powinny one usunąć DATETIME_FORMAT z dokumentacji lub dodać notatkę dotyczącą tego problemu).

Włożyłem te linie do pliku „settings.py” z strony/projektu (nie app), ale nie wydaje się mieć żadnego wpływu (po ponownym uruchomieniu serwer deweloperski):

DATETIME_FORMAT = 'RMD H: i: so'

DATE_FORMAT = 'RMD'

Jako przykład "29 czerwca 2009, 19:30" jest wyświetlany, gdy używa strony administratora Django.

Wersja Django ma wersję 1.0.2, a wersja Pythona 2.6.2 (64-bitowa). Platforma: Windows XP 64-bitowy.

stos przelewowy pytanie European date input in Django Admin wydaje się o konkretnym problemem przeciwnej (a zatem do wyraźnego sprzeczności).

Pełna ścieżka do pliku "settings.py" to "D: \ dproj \ MSQall \ website \ GoogleCodeHost \ settings.py". I teraz uruchomić serwer rozwoju w ten sposób (w oknie wiersza poleceń Windows):

cd D: \ dproj \ MSQall \ stronie \ GoogleCodeHost

zestaw DJANGO_SETTINGS_MODULE = GoogleCodeHost.settings

python manage.py runserver 6800

Nie ma różnicy. Poza tym są one pozytywnie przeczytać z pliku "ustawienia.py ":

DATABASE_NAME

INSTALLED_APPS

TEMPLATE_DIRS

MIDDLEWARE_CLASSES

"django-admin.py startproject XYZ" nie tworzy plik "settings.py" zawierające DATETIME_FORMAT lub DATE_FORMAT. Być może istnieje powód to?

Sekwencja "d", "cd D: \ dproj \ MSQall \ www \ GoogleCodeHost", "python manage.py shell", "z ustawień importowania django.conf", "settings.DATE_FORMAT" „settings.DATETIME_FORMAT” wyjścia (zgodnie z oczekiwaniami):

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

więc zawartość pliku „settings.py” są odczytywane, ale nie nie odniosły skutek w interfejsie administracyjnym Django.

+0

Czy masz ustawiony plik settings.py jako moduł ustawień? http://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings – jitter

+0

http://stackoverflow.com/questions/7737146/django-template-date-format może być dupe to, ale pytanie jest mniej precyzyjne –

Odpowiedz

1

Pozwoli to rozwiązać konkretny problem, że nie jest możliwe z DATETIME_FORMAT (jak to jest ignorowane w obecnych Django wdrożeń mimo dokumentacji), jest brudny zbyt i jest podobna do odpowiedzi Ayaz jest (mniej globalny - będzie dotyczyła jedynie widok listy site admin):

Zaraz po linii

(DATE_FORMAT, datetime_format, time_format) = get_date_formats()

w pliku (Django jest zazwyczaj w folderze/site-packages Lib w instalacja Pythona)

django/contrib/admin/templatetags/admin_list.py

zastąpienie wartości datetime_format (dla models.DateTimeField w modelu):

datetime_format = 'RMD H: i SO'

i For Data- tylko pola:

DATE_FORMAT = 'RMD'

Ponowne uruchomienie serwera WWW (np. serwer programistyczny) lub wylogowanie się z interfejsu administratora to NOT konieczne dla ta zmiana zaczyna obowiązywać. Wystarczy odświeżyć w przeglądarce internetowej wszystko, co jest wymagane.

1

Dwie dyrektywy ustawienia należy zdefiniować w settings.py. Czy możesz upewnić się, że ta sama edycja settings.py jest czytana podczas uruchamiania serwera programistycznego?

Można zawsze spadnie do Pythona interaktywnej powłoki uruchamiając python manage.py shell i uruchom następujące polecenia w celu zapewnienia, czy data/wartości Format czasu są coraz poprzez grzywny:

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

Ok, zapomniałem to sprawdzić , ale ticket #2203 zajmuje się tym. Niestety bilet pozostaje w stanie oczekiwania.

Pamiętam, że za projektem, który użył pewnej rewizji pnia 0,97 gałęzi Django, pracowałem wokół tego przez nadpisanie wartości w funkcji get_date_formats()date_format i datetime_format wewnątrz django/utils/translation/trans_real.py. Było brudno, ale już wcześniej używałem niestandardowego Django dla tego projektu, więc nie widziałem niczego, co mogłoby pójść źle w hackowaniu tego trochę więcej.