def cart_view(): if request.method == 'POST' and 'order_delete' in request.form: clear_cart() return redirect(url_for('order.cart_view')) cart = session.get('cart', {}) price = cart.get('price', 0) products_count = cart.get('products_count', 0) un_products_count = cart.get('un_products_count', 0) cart_products = cart.get('products', {}) products = [] for product_key in cart_products.keys(): cart_product = cart_products.get(product_key, {}) product = Product.retrieve_by_id(product_key) if product: product.order = cart_product.get('count', 0) product.order_price = cart_product.get('price', 0) products.append(product) if request.method == 'POST' and 'order_accept': order = Order(customer=current_user.user_db.key) price = 0 for product in products: order_product = OrderProduct( name=product.name, img_url='%s=s100' % product.images[0] if product.images else '', product_key=product.key, count=product.order, price=product.order_price, ) price += product.order_price order.products.append(order_product) order.price = price order.put() clear_cart() return render_template( 'order/order_success.html', title=u'Предзаказ оформлен', order=order ) return render_template( 'order/cart.html', title=u'Оформление предзаказа', price=price, products_count=products_count, un_products_count=un_products_count, products=products )