我有这堂课
class Order(db.Model):
__tablename__ = "orders"
id=db.Column(db.String, primary_key=True)
order_id = db.Column(db.String, nullable=True)
product_id=db.Column(db.String, nullable=True)
quantity=db.Column(db.Integer, nullable=True)
def save_to_db(self):
db.session.add_all(self)
db.session.commit()
我有这堂课
class checkout(Resource):
# @jwt_required
def post(self):
# current_user = get_jwt_identity()
# user_wallet=Wallet.find_by_customer_id(current_user)
order_id=uuid.uuid1()
data = parser_checkout.parse_args()
print (data['Products'][0]['Product_id'])
mainlist=list()
for i in range(0,len(data['Products'])):
new_order_prod=Order(
id=uuid.uuid1(),
order_id=order_id,
product_id=data['Products'][i]['Product_id'],
quantity=data['Products'][i]['quantity']
)
mainlist.append(new_order_prod)
try:
mainlist.save_to_db()
return {
'status':'succes',
'message':'sucess order placed'
},200
except:
return {
'status':'error',
'message':'order placing failed'
},401
我没有收到任何错误,但是我发现mainlist.save_to_db()
无法正常工作,这意味着它没有进入该类的功能内。谁能帮我 ?
我认为它没有进入那个函数becoz类对象是具有相关字段的元组,但是我正在制作列表并调用它,所以为什么它不起作用?有什么解决办法吗?
答案 0 :(得分:1)
您正在调用mainlist.save_to_db()
,但是您声明了mainlist = list()
,因此它没有save_to_db
方法。最重要的是,您有一个except
裸露的位置,因此可以避免这样做引起的任何错误。最好只处理特定的异常,或者如果要进行全面的except
,则至少要记录异常的含义。
与其在save_to_db
类上放置Order
方法,这意味着调用它仅影响1个实例,而是直接调用db.session.add_all(mainlist)
和db.session.commit()
。