es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  ,

Answer

  1. Avatar for 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:

    <input class="form-control" id="date" name="date" placeholder="AAAA-MM-DD" type="text" data-date-format="%Y-%m-%d" value="{{ form.date.data }}">
    

    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:

    <input class="form-control" id="hour" name="hour" placeholder="HH:MM" type="text" data-time-format="%H:%M" value="{{ form.hour.data }}">
    

    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.

Comments are closed.