【发布时间】:2016-11-24 00:15:55
【问题描述】:
我知道有很多情况会引发此错误,我在 stackoverflow 和其他网站上非常努力地搜索,但我无法弄清楚为什么表单一直处于未定义状态。任何帮助将不胜感激
我有wtf_input.py,它的所有wtf 定义如下
class InputForm(Form):
# individual_first_name: DataRequired, is_name_non_digit, is_name_length, is_english
first_name = StringField("First Name", [validators.DataRequired("Please enter first name"),
I.is_name_non_digit, I.is_name_length, I.is_english])
# individual_last_name: DataRequired, is_name_non_digit, is_name_length, is_english
last_name = StringField("Last Name", [validators.DataRequired("Please enter last name"),
I.is_name_non_digit, I.is_name_length, I.is_english])
# date_of_birth:
date_of_birth = DateField('date_of_birth', [validators.DataRequired('Birth date is required')], format='%Y-%m-%d',
description='Date format: YYYY-MM-DD', default='2001-02-02')
.
.
. a lot more
我是我的自定义验证器类所在的类(调用静态方法)。
my view/test.py(我的所有视图都在哪里)
from app.views.wtf_input import InputForm
@test_blueprint.route('/')
def index():
return render_template('wtf_input.html')
@test_blueprint.route('/post_user', methods=['GET', 'POST'])
def post_user():
form = InputForm()
if form.validate():
return render_template('wtf_input.html', form=form)
这给了我以下错误
Traceback (most recent call last)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 2000, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1991, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1567, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1641, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1544, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1639, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/app.py", line 1625, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/genomics/PycharmProjects/SA_test/app/views/post_inputs.py", line 62, in index
return render_template('wtf_input.html')
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/templating.py", line 134, in render_template
context, ctx.app)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/flask/templating.py", line 116, in _render
rv = template.render(context)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/jinja2/environment.py", line 989, in render
return self.environment.handle_exception(exc_info, True)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/jinja2/environment.py", line 754, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/Users/genomics/PycharmProjects/SA_test/app/templates/wtf_input.html", line 9, in top-level template code
{% for message in form.name.errors %}
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/jinja2/environment.py", line 408, in getattr
return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'form' is undefined
我真的不知道发生了什么。
有人可以帮我解决这个问题吗?
谢谢
【问题讨论】: