Los campos html5 proporcionados por WTForms incluyen un DateTimeLocalField- v2.3.x , v3.0.x. Así (v2.3)
from wtforms.fields.html5 import DateTimeLocalField dttm = DateTimeLocalField("Date/Time: ", format="%Y-%m-%dT%H:%M")mostrará el selector de fecha html5 y las ventanas emergentes del selector de hora en los navegadores que los admitan (la compatibilidad es variada).
Creo que necesita especificar format="%Y-%m-%dT%H:%M" - tenga en cuenta la T - porque el format="%Y-%m-%d %H:%M" falla en la validación (ver cita abajo).
input type="datetime" parece estar en desuso, por lo que los navegadores recurren a la entrada de texto sin formato: input type="datetime" | MDN . input type="datetime-local" , y por lo tanto WTForms DateTimeLocalField , siempre debe usarse: input type="datetime-local" | MDN .
De este último:
Una cosa a tener en cuenta es que los formatos de fecha y hora mostrados difieren del valor real; la fecha y la hora mostradas tienen el formato de acuerdo con la configuración regional del usuario según lo informado por su sistema operativo, mientras que el valor de fecha/hora siempre tiene el formato AAAA-MM-DDThh:mm.
Ok, después de verme obligado a leer la documentación de WTForms porque nadie respondió mi pregunta de inmediato, ahora entiendo que se puede manipular para hacer cualquier cosa que HTML pueda hacer al pasar argumentos de palabras clave HTML como este:
{{ formulario.cuando.etiqueta }}<br>
{{ formulario.cuando(tipo='fecha-hora-local') }}