如何在Django REST框架的序列化中创建缩略图?
我最近跳进了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,
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开枪,我不知道这和调试有关。更新了帖子!解决了这个问题。非常感谢。