为了账号安全,请及时绑定邮箱和手机立即绑定

flask WTF : 'StringField' object has no attribute 'content'

flask WTF : 'StringField' object has no attribute 'content'

qq_笑_17 2019-02-19 14:57:36
问题描述 在提交数据时,报错AttributeError: 'StringField' object has no attribute 'content' 问题出现的环境背景及自己尝试过哪些方法 form表单渲染正常,但是在填入数据后报错, 相关代码 // 请把代码文本粘贴到下方(请勿用图片代替代码)Form 代码 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 views代码@app.route('/home/weibo',methods=['GET','POST'])@login_requireddef 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) 模板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 %} 你期待的结果是什么?实际看到的错误信息又是什么? 求大神帮忙找问题?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 562 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信