def push(self, request, pk, format=None): """可以通过此接口推送数据到一张表, 需要定义数据字段和对应值.""" try: model = self.validate_model(request, str(pk)) serializer_class = convert_to_serializer(str(pk + 'serializer'), model) setattr(self, 'serializer_class', serializer_class) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) except ValidationError as e: raise APIException("ValidationError E:%s" % str(e)) except TypeError as e: raise APIException("TypeError E:%s" % str(e))
def pull(self, request, pk): """可以通过此接口查看一张表数据, 注意由于数据不固定,目前仅提供100条.""" model = self.validate_model(request, str(pk)) serializer_class = convert_to_serializer(str(pk + 'serializer'), model) setattr(self, 'serializer_class', serializer_class) setattr(self, 'queryset', model.objects.all()) queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True) return Response(serializer.data)