Saltar al contenido

formato de fecha de django ‘dd-mm-aaaa’

Solución:

El problema resultó ser que necesitaba los formatos de fecha ISO y UK en el settings.py archivo así:

DATE_INPUT_FORMATS = ('%d-%m-%Y','%Y-%m-%d')

y luego el forms.py se ajustó a lo siguiente:

class ClientDetailsForm(ModelForm):
    date_of_birth = DateField(input_formats=settings.DATE_INPUT_FORMATS)
    class Meta:
        model = ClientDetails

Por qué USE_L10N = True ¡No puedo hacer esto, no lo sé!

[Thanks to this and this]

DATE_INPUT_FORMATS en settings.py no tiene ningún efecto con USE_I18N = True. Esto se debe a que django cargará un formato específico para la configuración regional activa. Django se envía con definiciones de formato para muchas configuraciones regionales diferentes.

Puede anular las definiciones de formato predeterminado de django:

mysite/
    formats/
        __init__.py
        en/
            __init__.py
            formats.py

Como se describe en la documentación de django: Creación de archivos de formatos personalizados

En la respuesta de Sevenearths está el comentario.

Por qué USE_L10N = True ¡No puedo hacer esto, no lo sé!

La documentación dice que USE_L10N = True es la configuración predeterminada, pero para que las fechas del Reino Unido funcionen, LANGUAGE_CODE también debe cambiarse de su configuración predeterminada de en-us para en-GB.

Una vez modificados, los campos de fecha aceptan automáticamente los formatos “dd / mm / aaaa” y “aaaa-mm-dd” (y posiblemente otros, no los he probado todos) sin necesidad de configurar input_formats = settings.DATE_INPUT_FORMATS en cada campo de fecha del formulario.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *