python - django imagekit 处理器 : use dimensions stored in database

标签 python django imagekit django-imagekit

我有一个模型,其中缩略图宽度在父对象 (ForeignKey) 之间变化。我需要能够将此信息提供给 Imagekit 处理器。这是我的:

class Wall(models.Model):
    #...
    width = models.SmallIntegerField(null=True, blank=True)
    #...


class Poster(models.Model):
    wall = models.ForeignKey(Wall, related_name='posters')
    #...
    original_image = models.ImageField(upload_to=upload_image_to)

    def __init__(self, *args, **kwargs):
        self.thumbnail = ImageSpecField([
                Adjust(contrast=1.2, sharpness=1.1),
                SmartResize(height=163, width=self.wall.width)
            ],
            image_field='original_image', format='PNG'
        )

        super(Poster, self).__init__(*args, **kwargs)
    #...

但如果我这样做,什么也不会发生,甚至连缩略图 url 都不会生成。

以下将导致此异常:
AttributeError: 'ForeignKey' 对象没有属性 'width'

class Poster(models.Model):
    wall = models.ForeignKey(Wall, related_name='posters')
    #...
    original_image = models.ImageField(upload_to=upload_image_to)

    thumbnail = ImageSpecField([
            Adjust(contrast=1.2, sharpness=1.1),
            SmartResize(height=163, width=wall.width)
        ],
        image_field='original_image', format='PNG'
    )
    #...

最佳答案

#1 答案不适合当前版本的 django-imagekit (3.0.3)。 我找到了官方解决方案。 请引用 http://django-imagekit.readthedocs.org/en/latest/advanced_usage.html#specs-that-change

关于python - django imagekit 处理器 : use dimensions stored in database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426996/

相关文章:

python - 如何发现数据集中的哪些特征具有预测性?

Django 。我如何才能获得同一作者撰写的下一篇文章? (通过FOO过滤get_next_by?)

python - 在 Django View 中 sleep 的最不坏方式

django - 如何防止访问 Django 中的管理 URL?

python - 字母大小写排列

python - scikit-learn 中多类问题的级联分类器

python - sklearn Python 和逻辑回归

macos - cocoa 图像选择器弹出框

cocoa - 告诉 IKImageBrowserView 不要安排预加载

cocoa - IKImageBrowserView:如何显示每个项目的工具提示?