使用简单缩略图为 Tastypie API 生成缩略图

Posted

技术标签:

【中文标题】使用简单缩略图为 Tastypie API 生成缩略图【英文标题】:Generating a thumbnail for a Tastypie API with easy-thumbnails 【发布时间】:2012-11-18 06:48:03 【问题描述】:

我正在尝试使用脱水方法来生成我的缩略图,如下所示:

class PostResource(ModelResource):
    user = fields.ForeignKey(UserResource, 'user')

    class Meta:
        queryset = Post.objects.all()
        resource_name = 'post'
        authentication = Authentication()
        authorization = DjangoAuthorization()
        filtering = 
            'published': ALL,
            'type': ALL,
        
        ordering = [
            'hot_score',
            'likes',
            'date_created',
        ]

    def dehydrate(self, bundle):
        bundle.data['thumb'] = get_thumbnailer(self.image1, "image.jpg").get_thumbnail('size': (95, 95),).url
        return bundle

我得到的是这个错误:“'FileField' object has no attribute 'close'”

我得到这个是因为 self.image1 不是一个“真正的” FileField 对象(它是一个美味的.fields.FileField,它似乎不是基于 Django 的 FileField),所以它没有所有常用的方法那easy-thumbnails需要吗?如果是这样,是否有解决方案?

如果解决方案是使用 sorl-thumbnail,我会理解 :) 感谢您提供的任何帮助!

【问题讨论】:

你能用get_thumbnailer(bundle.obj.image1, "image.jpg").get_thumbnail('size': (95, 95),).url吗? 就是这样!而且我现在什至不需要related_name 字段。非常感谢。 【参考方案1】:

转换后的评论:

从 Django 模型而不是从资源中获取图像:

get_thumbnailer(bundle.obj.image1, "image.jpg").get_thumbnail('size': (95, 95),).url

【讨论】:

以上是关于使用简单缩略图为 Tastypie API 生成缩略图的主要内容,如果未能解决你的问题,请参考以下文章

带有简单缩略图的衬垫合身

Django Tastypie,运行一个动作

如何为十亿张 png 图像生成统一的缩略图?

Django RESTful API - django-piston 与 django-tastypie

访问资源时 jQuery Ajax 失败 (Django Tastypie)

Tastypie 不发送 cookie