【发布时间】:2021-02-05 00:44:48
【问题描述】:
我正在我的应用程序中的一个页面上工作,其中用户使用 WTForms 在评论页面上提交评论,并且在单击提交按钮时,应该显示文本“成功”。目前没有发生这种情况,因为单击提交后,评论页面会自动重新加载,但出现错误。 我已经创建了其他需要表单验证的页面,除了这个页面之外,我似乎无法弄清楚为什么,尽管从其他页面复制了代码。 非常感谢任何见解!
错误图片截图
这是我的 HTML 代码
<html>
<body>
{% for books in books %}
{{books.title}}
{% endfor %}
<form action = "{{ url_for('review', isbn=books.isbn)}}", method = "POST">
<div>
<br>{{ form.review(class_='form-control',placeholder ='Leave a review here')}}</br>
<ul>
{% for error in form.review.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
<br>{{ form.rating(class_='form-control',placeholder ='Leave a rating here')}}</br>
<ul>
{% for error in form.rating.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{{form.csrf_token}}
{{form.submit_button }}
</div>
</form>
</body>
</html>
Python 代码
@app.route("/review/<string:isbn>", methods = ['GET', 'POST'])
@login_required
def review(isbn):
review = Books.query.filter_by(isbn=isbn).all()
review_form = ReviewForm()
if review_form.validate_on_submit():
return "Success"
return render_template("review.html", books = review, form = review_form)
WTForms 字段
class ReviewForm(FlaskForm):
""" Review """
review = StringField('review_label', widget=TextArea(), validators = [InputRequired(message = "Review can't be empty")])
rating = StringField('rating_label', validators= [InputRequired(message="Please input a rating")])
submit_button = SubmitField('Submit')
【问题讨论】:
标签: python html flask-wtforms wtforms