django-imagekit - 缩略图字段未序列化

Kon*_*icz 1 python django serialization json django-imagekit

我有以下问题:

我正在 django 中编写一个 AJAX 视图,该视图提供有关来自 django-imagekit 扩展的模型的图像列表的 JSON 数据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()
Run Code Online (Sandbox Code Playgroud)

JSONConvertibleManager该模型使用自定义管理器,使用内置 Django 序列化程序( 的实例)转换为 JSON ( ) django.core.serializers

ImageSpecField我的问题是,除了完全被忽略的字段之外,所有字段都已正确序列化。序列化过程中是否可以返回instance.thumb.url值?

小智 5

仅供参考,我使用的是 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)
Run Code Online (Sandbox Code Playgroud)

我的序列化器:

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',)
Run Code Online (Sandbox Code Playgroud)