示例#1
0
    def get(self, request, *args, **kwargs):
        key = kwargs.get('id', None)
        if key:
            queryset = models.Client.objects.raw(
                "SELECT * FROM api_client WHERE id = %s LIMIT 1",
                (uuid.UUID(key).hex, ))

            if len(queryset) > 0:
                return Response(serializers.ClientSerializer(queryset,
                                                             context={
                                                                 'request':
                                                                 request
                                                             },
                                                             many=True).data,
                                status=status.HTTP_200_OK)
            raise exceptions.NotFound(
                detail="The requested client was not found.")

        queryset = models.Client.objects.raw("SELECT * FROM api_client")

        return Response(serializers.ClientSerializer(queryset,
                                                     context={
                                                         'request': request
                                                     },
                                                     many=True).data,
                        status=status.HTTP_200_OK)
示例#2
0
 def me(self, request):
     if request.method == "GET":
         serializer = serializers.ClientSerializer(request.user)
         return Response(serializer.data)
     if request.method == "PATCH":
         serializer = serializers.ClientSerializer(
             request.user, data=request.data, partial=True
         )
         serializer.is_valid(raise_exception=True)
         serializer.save()
         return Response(serializer.data)
示例#3
0
    def put(self, request):
        file = request.FILES['data']
        parser = CSVParser(file, ',')
        data = parser.parse()

        serializer = serializers.ClientSerializer(data=data, many=True)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data, status=status.HTTP_201_CREATED)
示例#4
0
    def put(self, request, *args, **kwargs):
        key = kwargs.get('id', None)
        if not key:
            return

        instance = None
        result = models.Client.objects.raw(
            "SELECT * FROM api_client WHERE id = %s LIMIT 1",
            (uuid.UUID(key).hex, ))

        if len(result) > 0:
            instance = result[0]
        else:
            raise exceptions.NotFound(
                detail="The requested client was not found.")

        serializer = serializers.ClientSerializer(instance, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data, status=status.HTTP_200_OK)
示例#5
0
    def post(self, request):
        serializer = serializers.ClientSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data, status=status.HTTP_201_CREATED)