def bulk_delete(self, request, *args, **kwargs): """ /api/tool/simple/bulk_delete/ :return: """ self.watch_audit_log(request) ids = request.data if not ids: return Response(status=status.HTTP_404_NOT_FOUND) bulk_models = [] for id in ids: req = {'id': id, 'msg': 'success'} try: queryset = self.filter_queryset(self.get_queryset()) instance = queryset.get(pk=id) self.perform_destroy(instance) except Exception as e: req['msg'] = ExceptionX.ToString(e) bulk_models.append(req) return JsonResponse( OrderedDict([('results', bulk_models)], code=status.HTTP_200_OK))
def retrieve(self, request, *args, **kwargs): self.watch_audit_log(request) instance = self.get_object() serializer = self.get_serializer(instance) return JsonResponse( OrderedDict([('results', serializer.data)], code=status.HTTP_200_OK))
def bulk_update(self, request, *args, **kwargs): """ /api/tool/simple/bulk_update/ :return: """ self.watch_audit_log(request) ids = request.data['ids'] obj = request.data['obj'] if not ids or not obj: return Response(status=status.HTTP_400_BAD_REQUEST) bulk_models = [] for id in ids: req = {'id': id, 'msg': 'success'} try: queryset = self.filter_queryset(self.get_queryset()) instance = queryset.get(pk=id) serializer = self.get_serializer(instance, data=obj, partial=True) serializer.is_valid(raise_exception=True) self.perform_update(serializer) except Exception as e: req['msg'] = ExceptionX.ToString(e) bulk_models.append(req) return JsonResponse( OrderedDict([('results', bulk_models)], code=status.HTTP_200_OK))
def bulk_create(self, request, *args, **kwargs): """ /api/tool/simple/bulk_create/ :return: """ self.watch_audit_log(request) objs = request.data if not objs: return Response(status=status.HTTP_400_BAD_REQUEST) bulk_models = [] for obj in objs: req = {'id': '0102', 'msg': 'success'} print(obj) try: serializer = self.get_serializer(data=obj) serializer.is_valid(raise_exception=True) self.perform_create(serializer) req['id'] = serializer.data['id'] except Exception as e: req['msg'] = ExceptionX.ToString(e) bulk_models.append(req) return JsonResponse( OrderedDict([('results', bulk_models)], code=status.HTTP_200_OK))
def get_paginated_response(self, data): return JsonResponse( OrderedDict([('count', self.page.paginator.count), ('next', self.get_next_link()), ('previous', self.get_previous_link()), ('results', data)], code=status.HTTP_200_OK))
def create(self, request, *args, **kwargs): self.watch_audit_log(request) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) try: self.perform_create(serializer) headers = self.get_success_headers(serializer.data) return JsonResponse(OrderedDict([('results', serializer.data)], code=status.HTTP_200_OK), headers=headers) except Exception as e: print(e) return JsonResponse( OrderedDict([('results', { "msg": ExceptionX.PasreRaise(e) })], code=status.HTTP_500_INTERNAL_SERVER_ERROR))
def create(self, request, *args, **kwargs): self.watch_audit_log(request) 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 JsonResponse(OrderedDict([('results', serializer.data)], code=status.HTTP_200_OK), headers=headers)
def list(self, request, *args, **kwargs): # self.watch_audit_log(request) 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 JsonResponse( OrderedDict([('results', serializer.data)], code=status.HTTP_200_OK))
def update(self, request, *args, **kwargs): self.watch_audit_log(request) partial = kwargs.pop('partial', False) instance = self.get_object() serializer = self.get_serializer(instance, data=request.data, partial=partial) serializer.is_valid(raise_exception=True) self.perform_update(serializer) if getattr(instance, '_prefetched_objects_cache', None): instance._prefetched_objects_cache = {} return JsonResponse( OrderedDict([('results', serializer.data)], code=status.HTTP_200_OK))
def destroy(self, request, *args, **kwargs): self.watch_audit_log(request) instance = self.get_object() self.perform_destroy(instance) return JsonResponse(OrderedDict(code=status.HTTP_200_OK))