#python #sqlalchemy
#python #sqlalchemy
Вопрос:
Я пытаюсь создать веб-страницу, используя Flask, которая вставляет данные в таблицу postgresql BkpFulfilmentProductProvider, но когда я делаю это через веб-страницу, я получаю ошибку ниже.
Не могли бы вы посоветовать, в чем может быть проблема.
Заранее спасибо
Ошибка:
sqlalchemy.exc.StatementError: (builtins.TypeError) Not a boolean value: None
[SQL: INSERT INTO bkp_fulfilment_product_provider (fulfilment_provider_code, is_primary, on_hand_stock, on_order_stock) VALUES (%(fulfilment_provider_code)s, %(is_primary)s, %(on_hand_stock)s, %(on_order_stock)s)]
[parameters: [{'fulfilment_provider_code': (None,), 'on_hand_stock': (None,), 'is_primary': (None,), 'on_order_stock': None}]]
Код :
@app.route('/')
def ful():
return render_template('Ful_Product_Provider.html')
@app.route('/Fulfilment', methods=['POST'])
def fulfilmentproductprovider():
from models import BkpFulfilmentProductProvider
#if request.method == "POST":
prod_cd = request.form.get('product_code')
ful_provider_cd = request.form.get('fulfilment_provider_code')
primary = request.form.get('is_primary')
stock_in_hand = request.form.get('on_hand_stock')
ordered_stock = request.form.get('on_order_stock')
fulfil = BkpFulfilmentProductProvider(prod_cd,ful_provider_cd,primary,stock_in_hand,ordered_stock)
db.session.add(fulfil)
db.session.commit()
return render_template('Ful_Product_Provider.html')
if __name__ == '__main__':
app.run(debug=True)
Model.py:
класс BkpFulfilmentProductProvider(db.Model): «»» Модель базы данных для поставщика продуктов выполнения»»» имя_таблицы = ‘bkp_fulfilment_product_provider’
product_code = db.Column(db.String(100), primary_key=True)
fulfilment_provider_code = db.Column(db.String(100))
is_primary = db.Column(db.Boolean)
on_hand_stock = db.Column(db.Integer)
on_order_stock = db.Column(db.Integer)
def __init__(self,product_code,fulfilment_provider_code,on_hand_stock,on_order_stock,is_primary=False):
self.product_code = product_code
self.fulfilment_provider_code = fulfilment_provider_code,
self.is_primary = is_primary,
self.on_hand_stock = on_hand_stock,
self.on_order_stock = on_order_stock
Ответ №1:
Здесь есть лишняя запятая. fulfillment_provider_code, после него не должно быть запятой.