我正在尝试修改会话并存储模型对象列表。
这是我的观点 -
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
我仍然无法做到。
感谢任何帮助。
答案 0 :(得分:1)
Session需要一些JSON可序列化的东西。因此,您必须将以下规则anyMatch
调整为附加ID。
您可以将列表的结构更改为以下行。同时将DB上的多个内容更改为一个过滤器。
food_list.append(Food.objects.get(food_id = f))