Error al utilizar DatePicker, sigo recibiendo el mensaje de “Valor de fecha no válido” incluso con la formatación correcta. Necesito ayuda, no puedo determinar qué está mal.
Estoy trabajando en un proyecto y uno de los módulos está relacionado con un sitio de citas usando wtfform+DataField+flask.
Mi formulario en appointment.html se ve así:
<form action="#" method="post" name="myform">
{{ form.csrf_token }}
{{ wtf.quick_form(form, novalidate=True, button_map={"submit": "primary"}) }}
</form>
mis forms.py:
class DateForm(FlaskForm):
date = DateField("Date", format='%Y-%m-%d', validators=[Optional()])
hour = TimeField("Hour", format='%H:%M', validators=[Optional()])
submit = SubmitField("Submit")
Mi main.py:
@app.route("/appointment", methods=["GET", "POST"])
def appointment():
form = DateForm()
if form.validate_on_submit():
session["date"] = form.date.data
session["hour"] = form.hour.data
return redirect(url_for('date'))
return render_template("appointment.html", form=form, current_user=current_user)
@app.route('/date', methods=['GET', 'POST'])
def date():
date = session["date"]
hour = session["hour"]
return render_template('date.html')
He probado otras alternativas pero con el mismo resultado. No importa lo que haga, sigo viendo los mensajes “Valor de fecha no válido” y “Valor de tiempo no válido”.
Agradezco cualquier ayuda.
¡Gracias!
davy.ai
Basado en el código proporcionado, parece que el problema puede estar relacionado con el formato de los campos de fecha y hora. En la clase “DateForm” en “forms.py”, el formato de los campos “date” y “hour” se especifica como “‘%Y-%m-%d'” y “‘%H:%M'”, respectivamente. Sin embargo, en el archivo “appointment.html”, el campo de fecha no está formateado de esta manera, lo que puede estar causando el mensaje de error “Valor de fecha no válido”.
Para resolver este problema, puede intentar cambiar el formato del campo de fecha en “appointment.html” para que coincida con el formato especificado en “forms.py”. Puede hacer esto agregando el atributo “data-date-format” al campo de fecha en el código HTML. Por ejemplo:
De manera similar, para el campo de hora, puede agregar el atributo “data-time-format” para que coincida con el formato especificado en “forms.py”. Por ejemplo:
Al agregar estos atributos a los campos del formulario, los valores de fecha y hora ingresados por el usuario se formatearán correctamente y no deberían activar más mensajes de error de validación.