我有以下问题:
我正在 django 中编写一个 AJAX View ,该 View 提供有关来自模型的图像列表的 JSON 数据,该模型使用来自 django-imagekit 扩展的 ImageSpecField
:
class Image(models.Model):
title = models.CharField(max_length=120)
img = models.ImageField(upload_to="images")
thumb = ImageSpecField(source="img",
id="core:image:image_thumbnail"
)
objects = models.Manager()
json_data = JSONConvertibleManager()
该模型使用自定义管理器通过内置的 Django 序列化程序(django.core.serializers
的实例)转换为 JSON (JSONConvertibleManager
)。
我的问题是所有字段都已正确序列化,除了 ImageSpecField
已被完全省略。是否可以在序列化期间返回 instance.thumb.url
值?
最佳答案
仅供引用,我使用的是 Django Rest Framework,因此使用了该库中的序列化程序类。
我的模型:
class Photo(models.Model):
""" Photograph """
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=255)
original_image = models.ImageField(upload_to='boxes')
formatted_image = ImageSpecField(source='original_image', format='JPEG',
options={'quality': 90})
thumbnail = ImageSpecField([Adjust(contrast=1.2, sharpness=1.1),
ResizeToFill(200, 115)], source='original_image',
format='JPEG', options={'quality': 90})
num_views = models.PositiveIntegerField(editable=False, default=0)
我的序列化器:
class PhotoSerializer(serializers.ModelSerializer):
original_image = serializers.Field('original_image.url')
thumbnail = serializers.Field('thumbnail.url')
class Meta:
model = Photo
fields = ('id', 'title', 'original_image', 'thumbnail',)
关于python - django-imagekit - 缩略图字段未序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240722/