Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django REST框架的序列化中创建缩略图?_Django_Django Rest Framework - Fatal编程技术网

如何在Django REST框架的序列化中创建缩略图?

如何在Django REST框架的序列化中创建缩略图?,django,django-rest-framework,Django,Django Rest Framework,我最近跳进了Django REST框架。在使用它之前,我使用缩略图图像。正如您在下面看到的模型一样,它工作得很好,因此我使用了image中的原始尺寸图像和image\u thumbnail中的缩略图尺寸图像 型号.py class Image(models.Model): ... image = ProcessedImageField(null=True, blank=True, upload_to=image_path,

我最近跳进了Django REST框架。在使用它之前,我使用缩略图图像。正如您在下面看到的模型一样,它工作得很好,因此我使用了
image
中的原始尺寸图像和
image\u thumbnail
中的缩略图尺寸图像

型号.py

class Image(models.Model):
    ...
    image = ProcessedImageField(null=True, blank=True, upload_to=image_path,
                                processors=[Thumbnail(1000, 1400)], format='JPEG')
    image_thumbnail = ImageSpecField(
        source='image', format='JPEG', options={'quality': 40})
    ...
class ImageRandomSerializer(ModelSerializer):

    class Meta:
        model = Image
        fields = ('image', 'image_thumbnail', )
问题是我不能在序列化程序中使用
image\u缩略图
。我可以使用
image
,但是
image\u缩略图
会抛出一条错误消息
发生服务器错误。请与管理员联系。

序列化程序.py

class Image(models.Model):
    ...
    image = ProcessedImageField(null=True, blank=True, upload_to=image_path,
                                processors=[Thumbnail(1000, 1400)], format='JPEG')
    image_thumbnail = ImageSpecField(
        source='image', format='JPEG', options={'quality': 40})
    ...
class ImageRandomSerializer(ModelSerializer):

    class Meta:
        model = Image
        fields = ('image', 'image_thumbnail', )
我可以不从serializers.py中的models.py使用缩略图绘制图像吗?我应该用Django REST框架缩略图工具来缩略它们吗

更新


设置DEBUG=True后,它抛出错误“utf-8”编解码器无法解码位置0处的字节0xff:无效的开始字节

我刚从中找到答案

添加了
image\u缩略图=ImageField(read\u only=True)
,现在它运行良好

from rest_framework.serializers import ImageField

class ImageRandomSerializer(ModelSerializer):

    store = StoreDomainKeySerializer()
    image_thumbnail = ImageField(read_only=True)

    class Meta:
        model = Image
        fields = ('store', 'image', 'image_thumbnail',)

我刚从中找到答案

添加了
image\u缩略图=ImageField(read\u only=True)
,现在它运行良好

from rest_framework.serializers import ImageField

class ImageRandomSerializer(ModelSerializer):

    store = StoreDomainKeySerializer()
    image_thumbnail = ImageField(read_only=True)

    class Meta:
        model = Image
        fields = ('store', 'image', 'image_thumbnail',)

请在设置文件中将调试设置为True,然后重试,然后将原始错误内容添加到question@M.J开枪,我不知道这和调试有关。更新了帖子!解决了这个问题。谢谢请在设置文件中将调试设置为True,然后重试,然后将原始错误内容添加到question@M.J开枪,我不知道这和调试有关。更新了帖子!解决了这个问题。非常感谢。