私はPythonを初めて使用するので、小さなストアを開発してTG2で試してみることにしました。これまで私はそれを愛してきましたが、私のコーディングパレードはまだJavaのLike、たとえばadd to cart
CartControllerのメソッドに非常に関連していると思います。
def add(self, **kw):
pid=kw['pid']
product = model.Product.by_id(pid)
cart = self.get_cart()
# check if that product is already on the cart
isInCart = False
for item in cart.items:
if item.product == product:
# if it is, increment quantity
cart.items.remove(item)
isInCart = True
item.quantity += 1
cart.items.append(item)
break
if not isInCart:
item = model.CartItem(cart, product, 1, product.normalPrice)
cart.items.append(item)
DBSession.add(item)
DBSession.flush()
# updating values for fast retrieval showing
# how many items are in the cart
self.update_session(cart)
return u'Item added to cart, %d items in session' % session['cartitems']
これは確かにこれを達成するための最良の方法ではありませんが、これまでのところ期待どおりに機能します。Javaでは、Itemオブジェクトを更新する必要がありますが、ここでは、リストから削除してから更新し、再度追加する必要があります。これは正しいですか?