¿Cómo cambiar el formato de fecha predeterminado AAAA-MM-DD a dd/mm/aaaa en Django?

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

  •  16-09-2019
  •  | 
  •  

Pregunta

Mi formato de fecha local es dd/mm/aaaa y Django solicita AAAA-MM-DD

cuando el usuario ingresa 11/04/2009 Django genera:

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

Estoy usando un campo de entrada html simple tipo = "texto", no formularios.DateField

Gracias :)

¿Fue útil?

Solución

Estoy asumiendo que usted está utilizando un forms.DateField. Si es así, es necesario proporcionar un argumento input_formats este modo:

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

input_formats simplemente toma una lista de los formatos que desea aceptar.

http://docs.djangoproject.com/en/ dev / ref / formas / campos / # datefield para más información.

Otros consejos

Según la publicación y los comentarios del OP, parece que aquí hay más que solo usar input_formats para el campo de fecha, aunque querrás hacerlo.El mensaje 'Ingrese una fecha válida en formato AAAA-MM-DD' es una excepción y NO un error de validación del formulario.Obtendrá esta excepción si intenta guardar una instancia de modelo utilizando una cadena de fecha que no sea 'AAAA-MM-DD'.

Lo que se necesita es usar un DateField en el formulario y luego crear una instancia del modelo usando los datos limpios, que es un objeto de fecha y hora.Parece que el OP estaba creando una instancia del modelo con una cadena en lugar de un objeto de fecha y hora.

Esta sección de los documentos de Django analiza la preparación de datos de DateField:https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top