wie Standard-Datumsformat AAAA-MM-DD dd / mm / yyyy in Django ändern?
-
16-09-2019 - |
Frage
Meine locale date wird dd / mm / yyyy und Django ist requering AAAA-MM-DD
, wenn die Benutzereingaben 04.11.2009 Django aufwirft:
_('Enter a valid date in YYYY-MM-DD format.'))
Im mit einfachem HTML-Eingabefeld type = "text", nicht forms.DateField
Danke:)
Lösung
Ich gehe davon aus Sie einen forms.DateField
verwenden. Wenn ja, müssen Sie wie so ein input_formats
Argument liefern:
class MyForm(forms.Form):
start_date = forms.DateField(input_formats=['%d/%m/%Y'])
input_formats dauert nur eine Liste der Formate, die Sie annehmen möchten.
Siehe http://docs.djangoproject.com/en/ dev / ref / forms / Felder / # Datefield für weitere Informationen.
Andere Tipps
Auf der Grundlage der Post OP und Kommentaren, es sieht aus wie mehr gibt es hier als nur input_formats für das Datumsfeld verwenden, wenn Sie das tun wollen werden. Die Meldung ‚Geben Sie ein gültiges Datum in YYYY-MM-DD-Format‘ ist eine Ausnahme und nicht ein Formular Validierungsfehler. Sie finden diese Ausnahme erhalten, wenn Sie versuchen, eine Modellinstanz mit einem Datum Zeichenfolge zu speichern, die nicht ‚YYYY-MM-DD‘ ist.
Was wir brauchen, ist eine Datefield in Form zu verwenden, und dann das Modell instanziiert die gereinigten Daten verwenden, die ein Datetime-Objekt ist. Es sieht aus wie der OP wurde das Modell mit einer Reihe eher als ein Datetime-Objekt zu erhalten.
In diesem Abschnitt wird der Django-Dokumentation beschreibt die Vorbereitung Datefield-Daten: https: // docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save