在基于多个条件从表单插入之前,请检查数据库中是否存在记录。烧瓶和SQL炼金术

时间:2018-12-30 14:07:30

标签: python flask

我有一个表格,用户可以上传最多8个不同实体的预算。 我正在尝试编写一个函数,该函数将根据表单中的四个字段检查记录是否存在,如果存在,则告诉用户记录已经存在。

我正在使用Flask框架和sql-alchemy。

我试图在下面编写函数(请参见代码),但是代码似乎是在评估if语句中的选项,而不是作为一个整体。例如。 if(a == 1和b == 2)为True:仅当满足两个条件时才满足条件,但在我的情况下,如果满足一个条件即认为条件已满足

 def upload_budget():
     form = UploadBudget()
     if form.validate_on_submit():
         sbu_check = SBUBudget.query.filter_by(sbu=form.SBUs.data)
         budgetcategory_check = SBUBudget.query.filter_by(budgetcategory=form.Budget_Cat.data)
         year_check = SBUBudget.query.filter_by(year=form.Year.data)
         period_check = SBUBudget.query.filter_by(period=form.Period.data)
         if (sbu_check and budgetcategory_check and year_check and period_check) != None:
             flash(_('Upload Failed. The Budget for the selected Category and Period already uploaded. '))
         else:
             uploadedbudget = SBUBudget(sbu= form.SBUs.data, budgetcategory=form.Budget_Cat.data, year=form.Year.data,
                                        revenue=form.Revenue.data, ebitda=form.Ebitda.data, period=form.Period.data)
             db.session.add(uploadedbudget)
             db.session.commit()
             flash(_('Budget successfully added!'))
     return render_template('finance.html', title=_('Upload Budget'), form=form)

我希望如果(sbu_check and budgetcategory_check and year_check and period_check) != None不为None,则刷新消息flash(_('Upload Failed。所选类别和期间的预算已经上传,否则执行其余代码。

0 个答案:

没有答案