come cambiare il formato della data predefinito AAAA-MM-DD al gg / mm / aaaa in Django?

StackOverflow https://stackoverflow.com/questions/1677035

  •  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:)

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top