django - 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': {}}
正在显示。
解决方案
推荐阅读
- unity3d - Unity 纹理在垂直表面上显示为线条
- php - Slim 的问题——HttpNotFoundException
- python - 如何使用 Candlestick 从 plotly (Python) 制作动画
- javascript - 如何从浏览器启动批处理文件?
- google-chrome - chrome中页面源和框架源的区别
- python - 如何使用 Python 小写 json dict 中的所有键
- python-3.x - 我不知道为什么这两个代码在 python 中有不同的输出
- python-3.x - 无法使用 Python 登录加密的银行网站
- amazon-web-services - 由于 100% cpu 利用率导致 AWS Aurora 超时
- codeigniter - Codeigniter 用 ID 中的 OR 条件更新数据