Flask wtf форма никогда не проходит валидацию
Есть форма коммертария:
class CommentForm(FlaskForm):
rating = IntegerField('Your rating (from 1 to 5)', validators=[DataRequired(),
NumberRange(min=1, max=5)])
comment = TextAreaField('Your comment', validators=[DataRequired(),
Length(min=5, max=255)])
submit = SubmitField('Submit')
и метод в application.py:
@app.route('/book', methods=['GET', 'POST'])
def book():
if "user_id" in session:
form = CommentForm()
if request.method == 'POST' and form.validate_on_submit():
print("!!!!")
comment = db.execute("SELECT * FROM reviews WHERE (book_isbn=:isbn AND user_id=:user_id)",
{'book_isbn': request.args.get('isbn'),
'user_id': request.args.get('user_id')}).fetchone()
#TODO
book_data = db.execute(f"SELECT * FROM books WHERE isbn=:isbn", {"isbn": request.args.get("isbn")}).fetchone()
greads_data = requests.get("https://www.goodreads.com/book/review_counts.json",
params={"key": "somekey", "isbns": book_data.isbn}).json()
greads_book_data = greads_data['books'][0]
if book_data:
return render_template('book.html', book=book_data,
average_rating=greads_book_data['average_rating'],
work_ratings_count=greads_book_data['work_ratings_count'],
form=form,
user_id=session['user_id'])
else:
flash("Book is currently not available")
return redirect(url_for('index'))
else:
return redirect(url_for('sign_in'))
Проблема в том, что блок
if request.method == 'POST' and form.validate_on_submit():
никогда не достигается, даже если в форме нет ошибок. Когда они там есть, они отображаются в форме на странице книги, когда их нет - в форме нет сообщений об ошибке. Почему при этом form.validate_on_submit() всегда возвращает false непонятно. Метод и параметра запроса верные, все проверил неоднократно. Заранее спасибо за помощь