django object is not JSON serializable error問題解決


今天用Django1.8.2寫一個購物車系統時用到session,需要序列化一個對象實例,直接用request.session[request.user.id] = cart 這樣的方式會報無法序列化的錯誤。

經過查找資料和嘗試,發現原因如下。

從Django 1.6開始session里面的數據都是用JSON來serialize。JSON的session只能接受簡單的數據結構比如str, list, dict。 有兩個選擇,可以先把cart的數據放在一個dict里面再存到 session或者可以換一個SessionSerializer。Django還提供一個用pickle來serialize的選擇可以存任何一個數據結構。

 

在settings.py中加入  SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

問題解決~

 

StackOverflow上也有類似的解決方案

http://stackoverflow.com/questions/24229397/django-object-is-not-json-serializable-error-after-upgrading-django-to-1-6-5


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM