我正在关注 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(...)