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)