コード例 #1
0
    def create(self, validated_data):
        #因为序列化关联sku选项是read_only =True,不参与序列化返回
        #所以这里采用sefl.context(是个字典数据,保存了请求对象request )获取sku
        sku_id = self.context['request'].data.get('sku')
        '''
        self下的context(字典类型),中有request(objects 是个请求对象,)
        request.data(请求体中的的数据),下有'sku'
        '''
        # 获取保存的图片数据
        image_data = validated_data.get('image')
        # 建立FastDFS的连接对象
        client = Fdfs_client(settings.FASTDFS_CONF)
        # 上传图片数据 read 读取二进制数据通过buffer上传 结果是一个字典
        res = client.upload_by_buffer(image_data.read())

        # 判断上传状态
        if res['Status'] != 'Upload successed.':
            raise serializers.ValidationError('图片上传失败')
        # 上传成功 获取返回图片的路径信息
        img_url = res['Remote file_id']
        # 将路径信息保存在图片表
        image = SKUImage.objects.create(image=img_url, sku_id=sku_id)
        # 调用详情页静态化方法
        sku_id = image.sku.id
        get_detail_html.delay(sku_id)

        # 返回图片表对象
        return image
コード例 #2
0
ファイル: images.py プロジェクト: 572314705/meiduo_24
    def update(self, instance, validated_data):
        image_data = validated_data.get('image')
        client = Fdfs_client(settings.FASTDFS_CONF)
        res = client.upload_by_buffer(image_data.read())
        if res['Status'] != 'Upload successed.':
            raise serializers.ValidationError('上传图片失败')
        image_url = res['Remote file_id']

        instance.image = image_url
        instance.save()

        # 调用异步任务
        get_detail_html.delay(instance.sku.id)
        return instance
コード例 #3
0
ファイル: images.py プロジェクト: 572314705/meiduo_24
    def create(self, validated_data):
        # self.context是个字典数据,里面保存了请求对象request
        sku_id = self.context['request'].data.get('sku')
        # 获取要保存的图片数据
        image_data = validated_data.get('image')
        # 链接FastDFS
        client = Fdfs_client(settings.FASTDFS_CONF)
        # 上传图片
        res = client.upload_by_buffer(image_data.read())
        # 判断上传状态
        if res['Status'] != 'Upload successed.':
            raise serializers.ValidationError('上传图片失败')
        # 上传成功获取图片路径信息
        img_url = res['Remote file_id']
        # 将路径信息保存在图片表中
        image = SKUImage.objects.create(image=img_url, sku_id=sku_id)

        # 调用异步任务
        get_detail_html.delay(image.sku.id)
        # 返回图片表对象
        return image
コード例 #4
0
    def update(self, instance, validated_data):
        # 获取保存的图片数据
        image_data = validated_data.get('image')
        # 建立FastDFS的连接对象
        client = Fdfs_client(settings.FASTDFS_CONF)
        # 上传图片数据 read 读取二进制数据通过buffer上传 结果是一个字典
        res = client.upload_by_buffer(image_data.read())

        # 判断上传状态
        if res['Status'] != 'Upload successed.':
            raise serializers.ValidationError('图片上传失败')
        # 上传成功 获取返回图片的路径信息
        img_url = res['Remote file_id']

        #更新图片路径
        instance.image = img_url
        instance.save()
        # 调用详情页静态化方法
        sku_id = instance.sku.id
        get_detail_html.delay(sku_id)
        # 返回图片表对象
        return instance
コード例 #5
0
ファイル: images.py プロジェクト: yeluoguigen/meiduo_admin1
 def create(self, validated_data):
     #self.context 属性是字典数据,含有request
     sku_id = self.context['request'].data.get('sku')
     #获取保存的图片数据
     image_data = validated_data.get('image')
     #建立FastDFS的连接对象
     client = Fdfs_client(settings.FASTDFS_CONF)
     #上传图片数据
     #image_data.read() 获得图片的二进制数据
     res = client.upload_by_buffer(image_data.read())
     #判断上传状态
     if res['Status'] != 'Upload successed.':
         raise serializers.ValidationError('图片上传失败')
     #上传成功返回图片的路径信息
     img_url = res['Remote file_id']
     #将路径信息保存在数据表中
     image = SKUImage.objects.create(image=img_url, sku_id=sku_id)
     #调用详情页静态化的方法
     sku_id = image.sku_id
     get_detail_html.delay(sku_id)
     #返回图片表对象
     return image
コード例 #6
0
    def update(self, instance, validated_data):
        request = self.context.get('request')
        # 获取前端的信息,图片
        image = request.FILES.get('image')
        # 创建连接对象,导入fdfs的配置文件
        client = Fdfs_client(Fdfs_config_path)
        # 向fastdfs系统上传图片
        ret = client.upload_by_buffer((image.read()))
        # 判断是否上传成功
        if ret['Status'] != 'Upload successed.':
            raise serializers.ValidationError({'error': '图片上传失败'})
        # 获取上传后路径
        image_url = ret['Remote file_id']
        # # 获取sku_id
        # sku_id = int(request.data.get('sku')[0])
        # sku = ser.validated_data['sku']
        # 更新操作图片表中
        instance.image = image_url
        instance.save()

        # 生成新的详情页页面
        get_detail_html.delay(instance.sku.id)

        return instance