estoy usando matraz de WTF:matraz de WTF - validate_on_submit() nunca se ejecuta
Aquí es mi forma:
from flask.ext.wtf import Form, TextField
class BookNewForm(Form):
name = TextField('Name')
Aquí es el controlador:
@book.route('/book/new', methods=['GET', 'POST'])
def customers_new():
form = BookNewForm()
if form.is_submitted():
print "submitted"
if form.validate():
print "valid"
if form.validate_on_submit():
flash("Successfully created a new book")
return redirect(url_for('.books_show'))
return render_template('views/books_new.html', form=form)
Ahora el problema es que si miras los resúmenes de impresión, siempre se imprime enviado, pero NUNCA se imprime como válido y validate_on_submit() nunca se ejecuta. ¿Por qué?
¡Muchas gracias! ¡Este fue el problema exacto! No incluí el campo csrf en mi formulario. Intentar resolverlo con '{{form.csrf}}' no funcionó, pero al hacerlo: '{{form.hidden_tag()}}' resolvió el problema. También tenía razón acerca de la impresión de errores, ¡es bueno saber cómo funciona correctamente ahora! – kadrian
Me alegra ayudar. Si está ejecutando WTForms 0.6 o posterior, 'form.csrf' se convirtió en' form.csrf_token', así que tenga cuidado, pero 'form.hidden_tag()' funciona igual de bien. –
Esto me estaba dando pesadillas. Muchas gracias. – skjoshi