django-restful:serializers 학습기록(一)

1654 단어
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 addtime 필드가 잘못될 수 있기 때문에 이걸로 처리할 수 없습니다
from django.core import serializers
         json_data = serializers.serialize("json", goods)
         return HttpResponse(json_data,content_type='application/json')

이렇게 하면 오류가 발생하지 않지만 미디어를 정상적으로 표시할 수 없습니다. 왜냐하면 그는 우리 데이터베이스에 기록된 이미지를 꺼냈을 뿐 settings에 설정된 미디어를 추가하지 않았기 때문에 전방 인원들이 이런 시간을 낭비하게 할 수 없습니다.
        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)

이 방법은 위의 것과 마찬가지로 이 문제가 있습니다. 단지 사용한 반환 응답 방식이 다르기 때문입니다. 하나는 Http Response이고 다른 하나는 Json Response입니다. 그런데 이 두 가지 모두 이 문제를 잘 처리하지 못하기 때문에 drf가 제공한 Serializers를 사용하겠습니다. 다음 편은 제가 쓰겠습니다.

좋은 웹페이지 즐겨찾기