首页 > 解决方案 > django 会话值未通过。在电子商务项目的购物车中创建会话时该值未通过

问题描述

我正在创建一个电子商务网站并为购物车功能创建会话。但是我的值没有传递给会话字典。

篮子.py:

class Basket():
    def __init__(self, request):
        self.session = request.session
        basket = self.session.get('skey')
        if 'skey' not in request.session:
            basket = self.session['skey'] = {}
        self.basket = basket

    def add(self,product):
        product_id=product.id 
        print(product_id)
        if product_id not in self.basket:
            print(product.price)
            self.basket[product_id]={'price':product.price}
            print(self.basket[product_id])
            print(self.basket)
        self.session_modified=True

视图.py:

def add_product(request):
    basket = Basket(request)
    if request.POST.get('action') == 'post':
        product_id =int(request.POST.get('productid'))
        print(product_id)
        product = get_object_or_404(Product, id=product_id)
        print(product)
        basket.add(product=product)
        response=JsonResponse({'test':'data'})
        return response

当我打印时,所有值都显示在终端中,但是当我解码会话密钥时,值没有传递或显示 {'skey': {}}正在显示。

标签: djangodjango-viewsdjango-sessions

解决方案


推荐阅读