Я новичок в программировании и изучаю Flask около недели, пытаясь создать сайт для электронной коммерции.
У меня есть коллекция под названием users
, в которой каждая запись выглядит следующим образом
{
"_id" : ObjectId("5b9170f1c5eb754e3ab8917f"),
"username" : "suhas",
"password" : "suhas",
"email" : "suhas",
"account_type" : "buyer",
"cart" : [
{
"product_id" : "5b915dd3c5eb754278e160e7",
"quantity" : 7
},
{
"product_id" : "5b915e3fc5eb754278e160e8",
"quantity" : 3
}
]
}
и коллекция users.products
, один из элементов выглядит следующим образом
{
"_id" : ObjectId("5b915f02c5eb7544108a14b9"),
"product name" : "Laptop",
"price" : 50000,
"description" : "HP laptop",
"user_id" : "5b914fc3c5eb753eaf81770c",
"username" : "chiranth"
}
Я хотел добавить функцию «добавить в корзину», которая добавляет product_id и количество в корзину (список типов) в виде словарей, как видно из коллекции db.users.
Код на Python, который я написал как:
cart_dict = user_info.get("cart")
for dict1 in cart_dict:
if dict1["product_id"]==product_id:
db["users"].update({"_id" : ObjectId(user_id),"cart.product_id":product_id},{ '$inc':{ 'cart.$.quantity':quantity}})
break
else:
db["users"].update({"_id":ObjectId(user_id)},{"$addToSet":{"cart":{"$each":[{"product_id":product_id,"quantity":quantity}]}}})
Проблема, однако, в том, что если я увеличиваю второй продукт, добавляя еще 2 к корзине, добавляя к текущим 3, условие if
проверяет первый продукт, видит, что идентификатор продукта не совпадает, и просто добавляет это как новый продукт, а затем переходит к продукту 2.
Таким образом, мой вопрос будет таким: как я могу попросить условие if
проверить сначала все product_id И ТО, а затем, если они не совпадают, добавить продукт?
РЕДАКТИРОВАТЬ: уточнить,
моя проблема с условием ЕСЛИ. Я хочу сначала сравнить продукт A, если он не удовлетворен, перейти к продукту B, и если ни один из них не совпадает, то он должен перейти к циклу else. Как я могу это сделать?