首页 > 解决方案 > Flask WTForm 验证提交但不更新数据库

问题描述

我试图将数据插入数据库,但它验证但不提交。我已经为其他形式编写了类似的代码,但是这个不起作用

形式:

    类 ScheduleInterviewForm(FlaskForm):
        招募 = StringField('招募 ID', 验证器=[DataRequired()])
        interviewdate = StringField('面试日期', validators=[DataRequired()])
        starttime = StringField('面试时间', validators=[DataRequired()])
        submit = SubmitField('安排面试')

模态:

    类 ScheduledInterview(db.Model, UserMixin):
        __tablename__ = "预定面试"
        interviewid = db.Column(db.Integer, primary_key=True)
        面试日期 = db.Column(db.String(50), nullable=False)
        招聘ID = db.Column(db.String(50),可为空=假)
        开始时间 = db.Column(db.String(50), nullable=False)
        status = db.Column(db.String(50), nullable=False, default='N/A')
        reject_reason = db.Column(db.String(100),nullable=False,default='N/A')

看法:

    @app.route("/ScheduleInterview", methods=['GET', 'POST'])
    @要求登录
    def ScheduleInterviewPage():
        表格 = ScheduleInterviewForm()
        如果 form.validate_on_submit():
            inter = ScheduledInterview(interviewdate=form.interviewdate.data,
                                       招聘ID=form.recruit.data,
                                       starttime=form.starttime.data)
            db.session.add(inter)
            db.session.commit()
            flash('计划已提交', '成功')
            返回重定向(url_for('home'))
        rlist = DriverRecruit.query.filter_by(recruit_approve='yes',recruit_interview='pending')
        return render_template('ScheduleInterview.html', title='Interview', rlist=rlist, form=form)

HTML页面:

    
              {{ form.hidden_​​tag() }}
              
                
                  
                    
                      {{ form.recruit.label(class="form-control-label") }}
                      {{ form.recruit(class="form-control form-control-lg",value= m.recruitid,disabled=True) }}
                    
                      
                      {{ form.interviewdate.label(class="form-control-label") }}
                      {{ form.interviewdate(class="form-control form-control-lg") }}
                    
                  
                  
                    
                    {{ form.starttime.label(class="form-control-label") }}
                    {{ form.starttime(class="form-control form-control-lg") }}
                  
                  
    
                
              
              
                {{ form.submit(class="btn btn-success") }}
                取消
    
              
            

标签: python-3.xflaskflask-sqlalchemyflask-wtforms

解决方案


推荐阅读