2012-03-13 9 views
10

I dati datetime sono memorizzati nel database come UTC. Sto visualizzando queste informazioni usando l'admin di Django.Come si fa a rendere noto il fuso orario di Django-admin?

C'è un modo per visualizzare informazioni datetime per il fuso orario corrente dell'utente finale nell'amministratore di Django?

Di solito penso che la logica per questo sarebbe nel livello template/view, tuttavia, Django-admin nasconde tutto questo da te e sembra che dovrei sovrascrivere molti dei file nascosti (che non uso t voglio fare).

Un'idea è di sottoclasse DateTimeField nei modelli e fare in modo che lo converta in fuso orario locale ogni volta che lo si preleva dal database, anche se non sono sicuro che funzionerà.

Qualcuno ha qualche suggerimento? Grazie.

+1

Mi piacerebbe davvero sapere come ho dovuto implementarlo manualmente. Se nessuno mi viene in mente, pubblicherò i miei hack, in pratica un templatetag. – jpic

+0

hey @jpic ... non mi dispiacerebbe guardare i tuoi hack. È qualcosa a cui dovrei ricorrere se non trovo una soluzione pulita. Saluti. – keyworks

risposta

3

Il supporto del fuso orario localizzato è disponibile nel prossimo 01A.

+0

Apparentemente il supporto del fuso orario da Django 1.4 non supporterà l'amministratore di Django. vedi il post di Danny in basso. – keyworks

+0

Sì, come indicato dal [docs] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time-zone) e nel thread di posta elettronica di Danny, non è è una cosa facile da realizzare ... Ma, per quanto riguarda il lato positivo, dovrebbe essere almeno molto più semplice di quanto non sarebbe nelle versioni precedenti. ;) – roam

+0

Django 1.4 supporta i fusi orari per django-admin. Ho seguito questa [guida alla migrazione] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zones-migration-guide) e ha funzionato perfettamente. – keyworks

6

Django 1.4 introdurrà il supporto del fuso orario ma l'amministratore non lo utilizzerà ancora. Ci sono ancora domande su cui implementare il fuso orario per "benedire" (pytz), dove memorizzare il fuso orario per utente (senza autenticazione di migrazione dello schema incorporata. L'utente fondamentalmente non può essere toccato senza forzare ogni utente Django a sincronizzare il proprio database), e non esiste ancora un'interfaccia utente per la selezione del fuso orario.

Quindi le parti ci sono ma è ancora fai da te in questa fase, mi dispiace.

Vedi il filo ho iniziato django-sviluppatori http://groups.google.com/group/django-developers/browse_thread/thread/1386a2bf73babc6a

+0

Ciao Danny, django-admin in django 1.4 sembra supportare i fusi orari. Non ho avuto problemi nell'implementarlo seguendo la guida alla migrazione nei documenti django. – keyworks

+1

La mia risposta è stata alla tua domanda "C'è un modo per visualizzare informazioni datetime per il fuso orario corrente dell'utente finale nell'amministratore di Django?" - Nell'amministratore di Django, tutti i tuoi utenti vedranno lo stesso datetime indipendentemente da dove si trovino. (per i motivi sopra citati) –

0

Se sai cosa fuso orario che si desidera utilizzare, ci sono tecniche per causare l'ingresso e la visualizzazione dei dati all'interno della amministrazione di usare quel fuso orario. Vedere il post del blog https://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/

Nel mio caso, tutti gli utenti admin si trovano nel fuso orario del server, quindi sono stato in grado di utilizzare questo approccio per ottenere che l'amministratore utilizzi quel fuso orario. Si noti che questo viene fatto su base per campo, piuttosto che a livello globale, tuttavia, e non conosco un modo per ottenere una data_hierarchia per utilizzare le date relative a questo fuso orario.

Problemi correlati