django-rest-framework

django-restful:serializers学习记录(一

2017-12-30  本文已影响17人  你常不走的路

serializers 是一个序列化
首先写写django本身如何完成序列化

class GoodsListView(View):
    def get(self, request):
        """
        通过django的view实现商品列表页
        :param request:
        :return:
        """
        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)
       

但是 json处理imageField and add_time字段会报错
因此我们不能使用这个来进行处理

from django.core import serializers
         json_data = serializers.serialize("json", goods)
         return HttpResponse(json_data,content_type='application/json')

这样虽然不会报错但是 也无法正常显示media 因为他只是把我们数据库中的记录的image拿出来
而没有加上我们在settings中配置的media ,所以不能让前端人员在去进行添加 这样十分的浪费时间

        from django.core import serializers
        json_data = serializers.serialize("json", goods)
        json_data = json.loads(json_data)
        from django.http import HttpResponse, JsonResponse
        return JsonResponse(json_data, safe=False)

这个方法和上面的那个一样同样有这个问题 只是使用的返回的响应的方式不同
一个是使用的HttpResponse 另一个是JsonResponse
但是这两个都不能很好的处理这个问题 所以我们要 使用drf给我们提供的serializers
下一篇我来写写

上一篇 下一篇

猜你喜欢

热点阅读