проверьте, есть ли запись в базе данных, прежде чем вставлять из формы на основе нескольких критериев.Настой & sql-алхимия - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть форма, в которой пользователи могут загружать бюджет до 8 различных организаций.Я пытаюсь написать функцию, которая будет проверять, существует ли запись на основе четырех полей в форме, и если это так, сообщает, что запись пользователя уже существует.

Я использую инфраструктуру Flask и sql-alchemy.

Я попытался написать функцию (см. Код) ниже, но, похоже, код оценивает параметры в операторе 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.Бюджет для выбранной категории и периода уже загружен, в противном случае выполните оставшуюся часть кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...