使用easy-thumbnails为Tastypie API生成缩略图

3

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

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'对象没有'closed'属性"。

这是因为self.image1不是一个真正的FileField对象(它是tastypie.fields.FileField,似乎不是基于Django的FileField),因此它没有easy-thumbnails需要的所有通常方法吗?如果是这样,是否有解决方案?

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


3
你可以使用get_thumbnailer(bundle.obj.image1, "image.jpg").get_thumbnail({'size': (95, 95),}).url吗? - dokkaebi
就是这样!现在我甚至不需要related_name字段了。非常感谢你。 - renegadeofunk
1个回答

2
从Django模型中获取图像,而不是从资源中获取:
get_thumbnailer(bundle.obj.image1, "image.jpg").get_thumbnail({'size': (95, 95),}).url

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接