【问题标题】:django manipulate session(insert,update,...)django 操作会话(插入,更新,...)
【发布时间】:2016-04-29 06:35:49
【问题描述】:

我想在购物车中添加产品的 ref_id(我使用 django session 和 ajax)
你看看我写的代码,告诉我为什么总是显示"cart not exist"
解决问题我该怎么办?

class add_to_cart(View):
    def post(self,request):
        ref_id = request.POST.get('ref_id',None)
        if(ref_id):
            print("request.session={}".format(request.session))
            # flag = request.session.get('cart',None)
            if 'cart' not in request.session:
                print("cart not exist")
                request.session['cart'] = {ref_id:1}
            else:
                print("cart exist")
                if ref_id in request.session['cart']:
                    print("ref_id exist in cart")
                else:
                    print("ref_id not exist in cart")
        else:
            print("ref_id has not sent")  

同时,我确信我写的代码 Ajax 是正确的

【问题讨论】:

  • 对操纵会话一无所知,但您是否尝试在 if 'cart' not in request.session 之前添加行 print(request.session) 以查看发生了什么?也许你需要做if cart not in str(request.session)?不过,这些都是远射。
  • 我尝试“如果购物车不在 str(request.session) 中”但再次显示“购物车不存在”
  • 我也遇到了同样的问题

标签: python django session cart django-sessions


【解决方案1】:

我找到了解决方案
每次更改后应使用会话:

request.session.save()

感谢大家的帮助

【讨论】:

    【解决方案2】:

    在启动购物车后尝试添加request.session.modified = True。 每次干扰会话时,您都应该通知 Django 会话已更改。

    【讨论】:

    • 如果您在request.session.modified = True 之后打印会话,输出中是否有“购物车”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多