2012-03-13 11 views
10

Mam informacje o datetime przechowywane w bazie danych jako UTC. Wyświetlam te informacje za pomocą administratora Django.Jak stworzyć strefę czasową Django-admin?

Czy istnieje sposób na wyświetlenie informacji o liczbie datetime do aktualnej strefy czasowej użytkownika końcowego w administratorze Django?

Zazwyczaj myślę, że logika tego będzie w warstwie szablon/widok, jednak Django-admin ukrywa to wszystko przed tobą i wygląda na to, że musiałbym przesłonić wiele ukrytych plików (których nie chcę). t chcę zrobić).

Jedną z idei jest podklasa DateTimeField w modelach i sprawienie, aby konwertowała ją do lokalnej strefy czasowej za każdym razem, gdy pobierasz ją z bazy danych, choć nie jestem pewien, czy to zadziała.

Ktoś ma jakieś sugestie? Dzięki.

+1

Naprawdę chciałbym wiedzieć, ponieważ musiałem wprowadzić to ręcznie. Jeśli nikt nie wymyśli niczego, opowiem o moich włamaniach - w zasadzie templatetag. – jpic

+0

hej @ jpic ..i nie miałbym nic przeciwko oglądaniu twoich hacków. Jest to coś, do czego mógłbym się odwołać, jeśli nie znajdę czystego rozwiązania. Twoje zdrowie. – keyworks

Odpowiedz

3

Zlokalizowana obsługa stref czasowych jest dostępna w wkrótce opublikowanym Django 1.4.

+0

Najwyraźniej obsługa strefy czasowej z Django 1.4 nie obsługuje administratora Django. zobacz post Danny'ego poniżej. – keyworks

+0

Tak, jak wspomniano w [docs] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time-zone) oraz w wątku e-mail Danny'ego, to nie jest Łatwo to osiągnąć ... Ale z drugiej strony powinno być co najmniej znacznie łatwiejsze niż we wcześniejszych wersjach. ;) – roam

+0

Django 1.4 obsługuje strefy czasowe dla django-admin. Postępowałem zgodnie z tym [poradnikiem migracji] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zones-migration-guide) i działało idealnie. – keyworks

6

Django 1.4 wprowadzi obsługę strefy czasowej, ale administrator nadal jej nie użyje. Nadal istnieją pytania dotyczące implementacji strefy czasowej w celu "pobłogosławienia" (pytz), gdzie można przechowywać strefę czasową na użytkownika (bez wbudowanej migracji schematu auth.User w zasadzie nie można dotknąć bez zmuszania każdego użytkownika Django do synchronizacji bazy danych), i nie ma jeszcze interfejsu użytkownika do wyboru strefy czasowej.

Części są tam, ale wciąż jest to DIY na tym etapie, przepraszam.

Zobacz wątek zacząłem na django-programistów http://groups.google.com/group/django-developers/browse_thread/thread/1386a2bf73babc6a

+0

Witam Danny, django-admin w django 1.4 wydaje się obsługiwać strefy czasowe. Nie miałem problemów z jego implementacją, wykonując instrukcje migracji w dokumentach django. – keyworks

+1

Moja odpowiedź brzmiała: "Czy istnieje sposób na wyświetlenie informacji o liczbie datetime do aktualnej strefy czasowej użytkownika końcowego w administratorze Django?" - w administratorze Django wszyscy Twoi użytkownicy zobaczą tę samą datę i godzinę, niezależnie od tego, gdzie się znajdują. (z wyżej wymienionych powodów) –

0

Jeśli wiesz, co strefa czasowa chcesz używać, istnieją techniki powoduje wprowadzanie danych i wyświetlanie w ciągu admin wykorzystać tę strefę czasową. Zobacz wpis na blogu: https://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/

W moim przypadku wszyscy użytkownicy administracyjni znajdują się w strefie czasowej serwera, więc udało mi się skorzystać z tej metody, aby administrator mógł korzystać z tej strefy czasowej. Zauważ, że robi się to na podstawie poszczególnych pól, a nie globalnie, i nie znam sposobu, aby uzyskać date_hierarchy do używania dat w stosunku do tej strefy czasowej.

Powiązane problemy