• 【Django】rest_framework 序列化自定义替换返回值


    # 序列化设置
    class PagerSerialiser(serializers.ModelSerializer):
    
        name = serializers.CharField(source="society.name")
        is_pass =serializers.CharField()  
    
        class Meta:
            model = models.SocietyAndUser
            fields = "__all__"
    
    
    
    class Society(APIView):
    
        def get(self, request):
            data = {}
            try:
                s_data = models.SocietyAndUser.objects.filter(user_id=request.auth).order_by('id')
    
                for da in s_data:
                    da.is_pass = self.type_t(da.is_pass)
    
                pg = PageNumberPagination()
                pg.max_page_size = 200
                pg.page_size_query_param = "size"
                pager_roles = pg.paginate_queryset(queryset=s_data, request=request, view=self)
                ser = PagerSerialiser(instance=pager_roles, many=True)
                data["code"] = 200
                data["count"] = len(s_data)
                data["data"] = ser.data
                return Response(data)
            except Exception as e:
                print(traceback.format_exc())
                data["code"] = 444
                data["message"] = "请求异常"
                return JsonResponse(data)
    
    
        def type_t(self,is_pass):
            data = {False:"正在申请中",True:"已加入社团"}
            res = data[is_pass]
            return res
    print结果:
    
    s_data <QuerySet [<SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>, <SocietyAndUser: SocietyAndUser object>]>
    正在申请中
    已加入社团
    正在申请中
    已加入社团
    正在申请中
    正在申请中
    正在申请中
  • 相关阅读:
    HTML th nowrap 属性
    C 语言实例 – 判断闰年
    Java MySQL 连接
    Linux shapecfg命令
    C 简介
    Java 之 HashSet 集合
    Java 之 Set 接口
    Java 之 LinkedList 集合
    Java 之 List 接口
    JavaScript 之 事件(详解)
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/12926646.html
Copyright © 2020-2023  润新知