【发布时间】:2016-02-03 17:13:53
【问题描述】:
我正在修改cookiecutter Flask 应用程序。
我有一个看起来像这样的表单:
<form class="form-inline" id="registerForm" method="POST" action="/get_email/" role="form">
<div class="form-group">
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter your email address">
</div>
<button type="submit" class="btn btn-warning btn-lg">submitMe!</button>
</form>
这个项目使用flask-wtf来处理表单,在forms/user.py中我发现:
class EmailForm(Form):
email = StringField('Email', validators=[DataRequired(), Email()])
还有一个看起来像这样的“路线”模型:
@blueprint.route("/get_email/", methods=['GET', 'POST'])
def get_email():
# form = EmailForm(request.form, csrf_enabled=False)
form = EmailForm()
if form.validate_on_submit():
new_user = User.create(email=form.email.data)
flash("Thank you for registering. Please check your email to confirm signup.", 'success')
return redirect(url_for('public.home'))
else:
flash_errors(form)
当我通过仅提交电子邮件来测试电子邮件注册表单(上面的 html)时,我得到:
jinja2.exceptions.UndefinedError
UndefinedError: 'myflaskapp.forms.user.EmailForm object' has no attribute 'username'
为什么?
【问题讨论】: