5-2 ImageFieldFile is not JSON serializable
来源:5-3 django的serializer序列化model

安福院长
2017-09-05
在这里遇到了 以下问题,请问如何解决
TypeError: Object of type 'ImageFieldFile' is not JSON serializable
[05/Sep/2017 23:48:20] "GET /goods/ HTTP/1.1" 500 135325
[05/Sep/2017 23:48:20] "GET /favicon.ico HTTP/1.1" 404 2327
GoodsListView代码如下:
class GoodsListView(View):
def get(self, request):
json_list = []
goods = Goods.objects.all()[:10]
# for good in goods:
# json_dict = {}
# json_dict['name'] = good.name
# json_dict['category'] = good.category.name
# json_dict['market_price'] = good.market_price
# json_list.append(json_dict)
from django.forms.models import model_to_dict
for good in goods:
json_dict = model_to_dict(good)
json_list.append(json_dict)
from django.http import HttpResponse
return HttpResponse(json.dumps(json_list), content_type='application/json')
Goods Model 如下:
class Goods(models.Model):
category = models.ForeignKey(GoodsCategory, verbose_name='商品类别')
goods_sn = models.CharField(max_length=30, default="", verbose_name='商品编码')
name = models.CharField(default="", max_length=30, verbose_name='商品名称', help_text='商品名称')
click_num = models.IntegerField(default=0, verbose_name='点击数')
fav_num = models.IntegerField(default=0, verbose_name='收藏数')
sold_num = models.IntegerField(default=0,verbose_name='售卖个数')
goods_num = models.IntegerField(default=0,verbose_name='库存数量')
market_price = models.FloatField(default=0,verbose_name='市场价')
shop_price = models.FloatField(default=0,verbose_name='商店价')
goods_brief = models.TextField(default=0,verbose_name='商品简介')
goods_desc = UEditorField(verbose_name='内容', imagePath='goods/images/', width=1000, height=800, filePath='goods/files/', default="")
goods_front_image = models.ImageField(upload_to='goods/images/', null=True, blank=True, verbose_name='商品图片')
ship_free = models.BooleanField(default='False', verbose_name='是否免邮')
is_new = models.BooleanField(default=False, verbose_name='是否新品')
is_hot = models.BooleanField(default=False, verbose_name='是否热销')
add_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间')
2回答
-
吴大宝100
2018-01-18
你好 你是怎么解决的呢 方便告诉一下么
00 -
安福院长
提问者
2017-09-06
解决了..
012017-09-06
Python前后端分离开发Vue+Django REST framework实战
2895 学习 · 2481 问题
相似问题