Django rest框架保存缩略图imag

2024-10-06 11:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始用django+python进行开发,一切都很顺利,直到我遇到了一个很简单的问题,但我无法用我对框架/语言的缺乏经验来解决。在

我通过HTTP请求接收一个JSON对象,该请求包含一些数据和2张图片。在这两张照片之前,我想从其中一张中保存一个缩略图,但我看不到能完成这项任务。我可以保存所有的数据,包括2张图片。但我看不到找到一种方法来生成一种方法,在数据库中也有,以及我想要的文件夹结构。在

我的文件夹应该像:

pictures
   user
      originals
      processed
      thumbnails
   otherUser
       originals
       processed
       thumbnails

我的目标是:接收2张图片,从其中一张创建缩略图,然后将所有3张图片保存在3个单独的文件夹中,并将路径保存到数据库中。在

下面是我的模型代码的样子。在

^{pr2}$

代码序列化程序。。。在

class SomeDataSerializer(serializers.HyperlinkedModelSerializer):
#url = serializers.HyperlinkedRelatedField(view_name='data', format='html')
owner = serializers.Field(source='owner.username')
thumbnail_image = serializers.Field(source='original_image')

class Meta:
    model = SomeData
    fields = ('url', 'adjustments', 'latitude', 'longitude', 'notes', 'original_image', 'processed_image',)

查看代码。。。在

class SomeDataViewSet(viewsets.ModelViewSet):
queryset = SomeData.objects.all()
serializer_class = SomeDataSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)

def pre_save(self, obj):
    obj.owner = self.request.user

我试过很多方法,比如简单的缩略图,或者一些预先准备好的方法。。但我无法找到一个解决我一直想要的解决方案。在

非常感谢!在


Tags: 数据方法代码image文件夹数据库图片class
1条回答
网友
1楼 · 发布于 2024-10-06 11:22:23

似乎您在SomeDataSerializer的定义中有错误。在模型SomeData字段中,原始图像被定义为ImageField,但在序列化程序中它只是Field,而不是{a1}。您应该使用正确的字段类型:

class SomeDataSerializer(serializers.HyperlinkedModelSerializer):
    #url = serializers.HyperlinkedRelatedField(view_name='data', format='html')
    owner = serializers.Field(source='owner.username')
    thumbnail_image = serializers.ImageField(source='original_image')
    ...

相关问题 更多 >