私はdjango ecommerce bookのショッピングカートの例に従っていますが、ショッピングカートからアイテムを削除するときに問題に直面しています。セッションから単一のアイテムを削除できません。
これは私のcart.pyの一部です
class Cart(object):
class Item(object):
def __init__(self, itemid, product, quantity=1, price=0):
self.itemid = itemid
self.product = product
self.quantity = quantity
self.price = price
self.totalprice = price * quantity
def remove_item(self, itemid):
self.items = filter(lambda x: x.itemid != itemid, self.items)
ビュー.py
def remove_from_cart(request, cart_item_id):
cart = get_shopping_cart(request)
cart.remove_item(int(cart_item_id))
update_shopping_cart(request, cart)
cart = get_shopping_cart(request)
ctx = {'cart': cart}
Python 2.7 と Django 1.5 を使用しています。remove_item メソッドの定義に問題はありますか? いくつかのオプションを試しましたが、うまくいきませんでした。ヒントをいただければ幸いです。
編集: 私の update_shopping_cart メソッドは:
def update_shopping_cart(request, cart):
request.session['cart'] = cart
カートでアイテムを削除できるビュー:
def shopping_cart(request):
cart = get_shopping_cart(request)
if request.method == 'POST':
cart = get_shopping_cart(request)
cart.remove_item(cart_item_id)
update_shopping_cart(request, cart)
cart = get_shopping_cart(request)
ctx = {'cart': cart}
render_to_response(...)