我最近跳入了Django REST Framework。在使用它之前,我使用django-imagekit将图像缩略图化。就像您看到下面的模型一样,它运作良好,因此我使用了image
的原始尺寸图像和image_thumbnail
的缩略图尺寸图像。
models.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})
...
问题是我不能在序列化器中使用image_thumbnail
。我可以使用image
,但是image_thumbnail
会抛出错误消息A server error occurred. Please contact the administrator.
serializers.py
class ImageRandomSerializer(ModelSerializer):
class Meta:
model = Image
fields = ('image', 'image_thumbnail', )
我不能在serializers.py中将来自models.py的图像缩略图化吗?我是否应该使用某些Django REST Framework缩略图工具为其缩略图?
更新
设置DEBUG = True后,它将引发错误'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
。
答案 0 :(得分:1)
我刚刚从here找到了答案。
添加了image_thumbnail = ImageField(read_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',)