Wie format DateTimeField in Django-Admin-localtime?
Formatieren DateTimeField in Admin nach localtime und Zeitzone ?
Meine settings.py:
TIME_ZONE = 'Europe/Bratislava'
LANGUAGE_CODE = 'en-us'
USE_I18N = True
USE_L10N = True
USE_TZ = True
pytz-Paket installiert ist.
Modell:
class Material(models.Model):
category = models.ForeignKey(Category, null=True, blank=True)
code = models.CharField(max_length=10)
description = models.CharField(max_length=30, blank=True, null=True)
modified = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
Habe auch versucht, einige Formatierung des Datums in den Einstellungen, nichts davon verändert die Art und Weise datetime-Objekt in eine Zeichenfolge konvertiert in admin-Liste anzeigen:
DATETIME_FORMAT = 'd N Y'
DATE_FORMAT = 'd N Y'
In der Datenbank datetime gespeichert ist korrekt, "2012-11-20 08:57:15.901341+01". Aber bei der Anzeige im admin, es wird immer in UTC.
Kann ich vorbereiten Methoden in ModelAdmin zu handhaben-format, aber das ist nicht wirklich TROCKEN, da würde ich gerne meinen admin-Klassen Aussehen:
from django.utils.timezone import localtime
class MaterialAdmin(admin.ModelAdmin):
list_display = ('code', 'modified_local', 'created')
def modified_local(self, row):
return localtime(row.modified)
modified_local.admin_order_field = 'modified'
modified_local.short_description = 'Modified'
- Was bedeutet die
from django.utils.formats import localize; localize(localtime(row.modified))
Ausgabe in pyshell? - >>> Reihe.geändert datetime.datetime(2012, 11, 20, 7, 57, 15, 901000, tzinfo=<UTC - >) >>> lokalisieren(localtime(Zeile.modifiziert)) u'Nov. 20, 2012, 8:57 Uhr'
- Lösung mit der Festlegung von Immobilien wie Methode ist SCHLECHT, und ist eine Art von BAD-design-Muster. Haben Sie einen Blick auf meine Lösung/Konfiguration.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort auf deine Frage ist die richtige Konfiguration
settings
undformats
im Django-Projekt. Die Struktur der Beispiel-Projekt:Können Sie definieren, für mehrere Sprachen, indem Sie Verzeichnis mit dem entsprechenden Namen und formats.py innen.
Das Beispiel Inhalt
formats.py
wo alle die MAGIE passiert, können wie folgt Aussehen:Bitte beachten Sie zwei links in die Kommentare, die führen Sie zu Listen von richtigen Konfigurationen, die für VERSCHIEDENE Teile!
In Ihrem
settings.py
nur hinzufügen:[GITHUB] Hier ist ein voll funktionsfähiges Beispiel: https://github.com/andilab/demo_time_set
UTC
und meine localeen
aber es ist nicht unter Berücksichtigung der definierten Formate inmyapp/formats/en/formats.py
... fehlt Etwas?