comment modifier le format de date par défaut AAAA-MM-JJ à jj / mm / aaaa dans Django?

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

  •  16-09-2019
  •  | 
  •  

Question

Ma locale dateformat est jj / mm / aaaa et Django est requering-AAAA MM-JJ

lorsque les entrées utilisateur 04/11/2009 Django: soulève

_('Enter a valid date in YYYY-MM-DD format.')) 

Im en utilisant de type simple champ de saisie html = "text", pas forms.DateField

Merci:)

Était-ce utile?

La solution

Je suppose que vous utilisez un forms.DateField. Si oui, vous devez fournir un argument input_formats comme ceci:

class MyForm(forms.Form):
    start_date = forms.DateField(input_formats=['%d/%m/%Y'])

input_formats prend juste une liste des formats que vous voulez accepter.

Voir http://docs.djangoproject.com/en/ dev / ref / formes / champs / # datefield pour plus d'informations.

Autres conseils

D'après le poste et les commentaires de l'OP, il semble qu'il y ait plus ici que d'utiliser simplement input_formats pour le champ de date, si vous voulez faire. Le message 'Entrez une date valide au format AAAA-MM-JJ' est une exception et pas une erreur de validation de formulaire. Vous aurez cette exception si vous essayez d'enregistrer une instance de modèle à l'aide d'une chaîne de date qui n'est pas 'AAAA-MM-JJ.

Il est nécessaire d'utiliser un DateField sous la forme, et puis instancier le modèle en utilisant les données nettoyées, ce qui est un objet datetime. On dirait que l'OP a été instancié avec le modèle avec une chaîne plutôt qu'un objet datetime.

Cette section de la documentation Django traite la préparation des données DateField: https: // docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top