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实战
2904 学习 · 2491 问题
相似问题