(http://www.cnblogs.com/ljwbook/p/4957841.html)
今天用Django1.9.0寫一個用戶登錄時用到session叹坦,需要序列化一個對象實例荞胡,直接用request.session['login'] = current_user,這樣的方式會報無法序列化的錯誤痛黎。
經(jīng)過查找資料和嘗試腊徙,發(fā)現(xiàn)原因如下焙压。
從Django 1.6開始session里面的數(shù)據(jù)都是用JSON來serialize。JSON的session只能接受簡單的數(shù)據(jù)結(jié)構(gòu)比如str, list, dict躁愿。 有兩個選擇嫁盲,可以先把cart的數(shù)據(jù)放在一個dict里面再存到 session或者可以換一個SessionSerializer篓叶。Django還提供一個用pickle來serialize的選擇可以存任何一個數(shù)據(jù)結(jié)構(gòu)。
在settings.py中加入
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
問題解決~