属性错误: 'StringField'对象没有属性'content'



我对Python比较陌生,我一直在学习Miguel Grinberg Flask Mega教程。

我有一个非常简单的表格,当我尝试提交时,我会收到以下错误:AttributeError:"StringField"对象没有属性"content">

这是表格.py

class WeiboForm(FlaskForm):
''' 微博表单 '''
content = StringField(label='微博内容:',
validators=[DataRequired("请输入微博内容")],
description="请输入微博内容",
render_kw={"required": "required", "class": "form-controal"})
submit = SubmitField(
label='发布',)

def validate_content(self,field):
"""限制微博文字长度"""
content = field.content
if len(content) < 5:
raise ValidationError("长度不能小于5个字")
if len(content) > 140:
raise ValidationError("长度不能大于140个字")
return content
def publish(self,user,db):
""" 发送微博 """
data=self.data
#创建对象
weibo=Weibo(
content=data['content'],
user_id=user.id,
is_valid=datetime.new(),
created_at=datetime.new()
)
db.session.add(weibo)
db.session.commit()
return weibo

这是视图.py

@app.route('/home/weibo',methods=['GET','POST'])
@login_required
def weibo_publish():
''' 发布微博 '''
form=WeiboForm()
if form.validate_on_submit():
#新增记录
form.publish(user=current_user)
#提示用户
flash('发布成功')
#跳转
return redirect(url_for('index'))
return render_template('/home/weibo.html',form=form)

以下是模板

{% block content %}
<div class="contanier">
<div class="col-md-6 col-md-offset-3">
<form class="form-weibo" role="form" method="post" action="{{ url_for('weibo_publish') }}">
<div class="form-inner clearfix">
<div class="form-header clearfix">
<span class="pull-left">有什么新鲜事告诉大家?</span>
<span class="pull-right">已输入21字</span>
</div>
{{ form.content }}
<ul class="text-danger">
{% for err in form.content.errors %}
<li>{{ err }}</li>
{% endfor %}
</ul>
<div class="pull-right">
{{ form.csrf_token }}
{{ form.submit }}
</div>
</div>
</form>
</div>
</div>
{% endblock %}

我花了四个小时。这真的很难。请帮我找出的原因

而不是

content = field.content

进行

content = field.data

最新更新