无法保存django会话中的对象列表

时间:2015-11-30 17:12:02

标签: python django session

我正在尝试修改会话并存储模型对象列表。

这是我的观点 -

def update_cart(request):
    if request.method == 'POST':
        post = request.POST
        cart = json.loads(post['cart'])
        food_list = []
        for f in cart['food']:
            food_list.append(Food.objects.get(food_id = f))
        print food_list
        request.session['food'] = food_list
        request.session.modified = True
        request.session['quantity'] = cart['quantity']
        request.session['price'] = cart['price']
        request.session['amount'] = cart['amount']
        print request.session
        return JsonResponse({'data': 'OK'})

它将food_list和会话对象打印为<django.contrib.sessions.backends.db.SessionStore object at 0x7f49bca6e150>

在此之后我收到内部服务器错误。

我的设置中还有SESSION_SAVE_EVERY_REQUEST = True

我仍然无法做到。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

Session需要一些JSON可序列化的东西。因此,您必须将以下规则anyMatch调整为附加ID。

您可以将列表的结构更改为以下行。同时将DB上的多个内容更改为一个过滤器。

food_list.append(Food.objects.get(food_id = f))