python - python 如何将 Django 对象存储为会话变量( 对象不是JSON序列化)?

113 2

我有一个简单的实现看法


def foo(request):


 card = Card.objects.latest(datetime)


 request.session['card']=card



对于上面的代码,我得到了


"<Card: Card object> is not JSON serializable"



Django 版本 1.6.2. 我做错了什么?

时间: 原作者:

61 2

在cookie中,我只存储对象的主键:


request.session['card'] = card.id



从会话中加载card时,请使用以下方法再次获取card:


try:


 card = Card.objects.get(id=request.session['card'])


except (KeyError, Card.DoesNotExist):


 card = None



如果会话中没有 card 条目或特定卡不存在,则将 card 设置为 None

原作者:
144 5

有两种简单的方法可以做到这一点。

  • 如果每个对象同时属于单个会话,则将会话标识存储为模型字段,并更新模型。
  • 如果对象可以同时属于多个会话,则将 object.id 存储为会话变量。
原作者:
...