Hemos estado investigando por todo el mundo online y así traerte la solución para tu problema, si continúas con inquietudes puedes dejar la inquietud y te contestamos con gusto, porque estamos para ayudarte.
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 formularios.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 muchos lugares diferentes.
Puede anular las definiciones de formato predeterminadas 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
a en-GB
.
Una vez modificados, los campos de fecha aceptan automáticamente los formatos “dd/mm/yyyy” y “yyyy-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.
Sección de Reseñas y Valoraciones
Si guardas algún reparo o capacidad de arreglar nuestro noticia puedes añadir un comentario y con mucho placer lo observaremos.