2015-06-18 21 views
7

Ich bin ein django Anwendung zu schaffen, und ich habe das nächste Problem: Dieser Fehler wird angezeigt, wenn ich ein Datum festlegen möchten:Wie kann ich ein DateField-Format in Django vom Modell festlegen?

ValidationError [u"'12/06/2012' value has an invalid date format. It must be in YYYY-MM-DD format."] 

Für dieses Modell:

class ModelA(models.Model): 

    date1 = models.DateField(null=True) 
    date2 = models.DateField(null=True) 

Wie ich das einstellen kann DateField-Format ist %m/%d/%Y.

Die Option "input_formats" wird nicht erkannt.

Vielen Dank!

Antwort

7

In settings.py gesetzt DATE_INPUT_FORMATS wie folgt:

DATE_INPUT_FORMATS = ['%d-%m-%Y'] 

in Ihrem Formular Und man könnte wie unten etwas tun:

class ClientDetailsForm(ModelForm): 
    date_of_birth = DateField(input_formats=settings.DATE_INPUT_FORMATS) 
    class Meta: 
     model = ModelA 
+1

Dies funktioniert nur, wenn 'USE_L10N' False ist. Möglicherweise müssen Sie auch "DATE_FORMAT" festlegen, die beim Drucken eines Datums in den Vorlagen verwendet wird. – Dric512

+1

Kann nicht vom Modell aus eingestellt werden. Es gilt nur für das Formular. –

12

input_formats ist eine forms.DateField option, keine model.DateField Option. Sie müssen es in Ihrer Form einstellen, nicht in Ihren Modellen.

+0

Modelle erstellen ich generische Ansichten verwende. Wie kann ich ändern, wie das Datum aus dem Modell formatiert wird? – BigMonkey89WithaLeg