1

次の問題があります:

ImageSpecFielddjango-imagekit 拡張機能を使用するモデルからイメージ リストに関する JSON データを提供する AJAX ビューを django で作成しています。

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()

JSONConvertibleManagerこのモデルは、組み込みの Django シリアライザー ( のインスタンス) を使用して、カスタム マネージャーを使用して JSON ( ) に変換しますdjango.core.serializers

ImageSpecField私の問題は、完全に省略されている を除いて、すべてのフィールドが適切にシリアル化されていることです。シリアル化中に値を返すことは可能instance.thumb.urlですか?

4

3 に答える 3

4

参考までに、私は 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',)
于 2014-10-23T23:09:03.607 に答える