我将我的电子商务项目迁移到django 1.8,但我无法访问shopcart会话。我将用户shopcart存储为会话中的对象,然后request.session进行访问。 此对象现在被视为String,因此我无法添加/删除/ etc项或修改它。
class Cart(object):
class Item(object):
def __init__(self, itemid, product, image, quantity=1, price=0):
self.image = image
self.itemid = itemid
self.product = product
self.quantity = quantity
self.price = price
def __init__(self):
self.items = list()
self.unique_item_id = 0
我尝试在settings.py中添加session_serialize,但它不起作用。我认为它与这个较新的django版本有关,但这是解决它的正确方法吗?我是否应该将所有会话更改为仅存储Id(该对象应存储在DB中?)?或者写我自己的序列化器?
感谢。
我的购物车:
{{1}}
答案 0 :(得分:0)
在会话中存储cart_id
是一种可能性。另一种可能性是修改您get_shopping_cart
类,以便反序列化会话中存储的字符串。
def get_shopping_cart(request, cart_class=Cart):
if 'cart' in request.session:
session = string_to_cart(request.session['cart'])
else:
session = cart_class()
return session