come cambiare il formato della data predefinito AAAA-MM-DD al gg / mm / aaaa in Django?
-
16-09-2019 - |
Domanda
Il mio locale dateformat è gg / mm / aaaa e Django è requering AAAA-MM-DD
quando l'utente immette 04/11/2009 Django solleva:
_('Enter a valid date in YYYY-MM-DD format.'))
Im utilizzando semplici tipo di campo di input html = "text", non forms.DateField
Grazie:)
Soluzione
Sto assumendo si sta utilizzando un forms.DateField
. Se è così, è necessario fornire un argomento input_formats
in questo modo:
class MyForm(forms.Form):
start_date = forms.DateField(input_formats=['%d/%m/%Y'])
input_formats vuole solo un elenco dei formati che si desidera accettare.
http://docs.djangoproject.com/en/ dev / ref / forme / campi / # datefield per ulteriori informazioni.
Altri suggerimenti
Sulla base postale e commenti del PO, sembra che non v'è più qui che usando solo input_formats per il campo data, anche se si vorrà farlo. Il messaggio 'Inserire una data valida nel formato AAAA-MM-GG' è un'eccezione e non un errore di validazione dei form. Otterrete questa eccezione, se si tenta di salvare un'istanza di modello utilizzando una stringa di data che non e 'YYYY-MM-DD'.
Ciò che è necessario è quello di utilizzare un DateField in forma, e poi istanziare il modello utilizzando i dati puliti, che è un oggetto datetime. Sembra che il PO è stato istanziare il modello con una stringa piuttosto che un oggetto datetime.
Questa sezione della documentazione Django discute preparazione dei dati DateField: https: // docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save