Объект типа Mycart не сериализуем в формате JSON в Django

Я хочу добавить объект типа данных словаря (имеющий модели) в request.session, но получаю сообщение «Объект типа 'Mycart' не сериализуемый JSON в Django»

product_details = {}
for product in products_in_cart:
    product_details.update({product.id: 
    (product,request.POST['quantity'+str(product.product.id)])})  
request.session['product_details'] = product_details

Я ожидаю, что словарь будет обновлен в сеансе, но фактический результат будет: «Объект типа« Mycart »не сериализуем в JSON в Django»


person Vipin Sharma    schedule 31.01.2019    source источник
comment
Можете ли вы предоставить обратную связь? На данный момент непонятно, что вызывает ошибку.   -  person Willem Van Onsem    schedule 31.01.2019


Ответы (1)


Проблема заключается в product, который является первым параметром вашего кортежа внутри вашего словаря. вам необходимо сериализовать его, прежде чем вы сможете использовать его в своем кортеже следующим образом:

 from django.core import serializers

 product_details = {}
 for product in products_in_cart:
     s_product = serializers.serialize("json", [product])
     product_details.update({product.id: 
    (s_product,request.POST['quantity'+str(product.id)])})  
     request.session['product_details'] = product_details
person Ahtisham    schedule 31.01.2019
comment
@vipinsharma Если это было полезно и решило вашу проблему, вы можете отметить мой ответ как принятый :) - person Ahtisham; 01.02.2019