問題描述
在提交數(shù)據(jù)時,報錯AttributeError: 'StringField' object has no attribute 'content'
問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法
form表單渲染正常,但是在填入數(shù)據(jù)后報錯,
相關(guān)代碼
// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)Form 代碼
class WeiboForm(FlaskForm):
''' 微博表單 '''
content = StringField(label='微博內(nèi)容:',
validators=[DataRequired("請輸入微博內(nèi)容")],
description="請輸入微博內(nèi)容",
render_kw={"required": "required", "class": "form-controal"})
submit = SubmitField(
label='發(fā)布',)
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):
""" 發(fā)送微博 """
data=self.data
#創(chuàng)建對象
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
views代碼@app.route('/home/weibo',methods=['GET','POST'])@login_requireddef weibo_publish():
''' 發(fā)布微博 '''
form=WeiboForm()
if form.validate_on_submit():
#新增記錄
form.publish(user=current_user)
#提示用戶
flash('發(fā)布成功')
#跳轉(zhuǎn)
return redirect(url_for('index'))
return render_template('/home/weibo.html',form=form)
模板templates
{% 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 %}
你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?
求大神幫忙找問題?
添加回答
舉報
0/150
提交
取消