web-dev-qa-db-fra.com

Comment puis-je définir un format DateField dans Django à partir du modèle?

Je crée une application Django et j'ai le problème suivant: cette erreur s'affiche lorsque je veux définir une date:

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

Pour ce modèle:

class ModelA(models.Model):

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

Comment puis-je définir le format DateField sur %m/%d/%Y.

L'option "input_formats" n'est pas reconnu.

Merci!

15
jartymcfly

Comme @bruno comme mentionné dans sa réponse, input_formats est un champ de formulaires, mais il peut être utilisé pour contrôler le format de date enregistré à partir du modèle.

Dans settings.py ensemble DATE_INPUT_FORMATS comme ci-dessous:

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

Et dans votre formulaire, vous pouvez faire quelque chose comme ci-dessous:

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

input_formats est un forms.DateField option , pas un model.DateField option. Vous devez le définir dans votre formulaire, pas dans vos modèles.

17