Beispiel #1
0
    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))
Beispiel #2
0
 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))
Beispiel #3
0
    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))
Beispiel #4
0
    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))
Beispiel #5
0
 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))
Beispiel #6
0
 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))
Beispiel #7
0
 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)
Beispiel #8
0
 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))
Beispiel #9
0
    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))
Beispiel #10
0
 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))