是否有在views.py中使用Wagtail Image标签的工作范围

时间:2017-02-26 09:54:10

标签: django wagtail

我遇到以下问题: 在我的models.py中,我正在使用像这样的Wagtail图像:

class ArtWork(models.Model):
    image = models.ForeignKey(
            'wagtailimages.Image',
            on_delete=models.CASCADE,
            related_name='+'
        )
    ...
    ...
    ...

我知道我现在可以使用我的模板中的图像:

{% image artwork.image height-100 %}

但是对于我当前的项目,我需要在views.py中使用Image标签,因为我想用它生成一个Pdf。

简单地使用artwork.image只返回图像的标题,但我需要这样的东西:

<img alt="SomeName" src="/media/images/SomeName_155x200.max-1200x1200_22b3pND.height-100.jpg" width="77" height="100"> 

同样artwork.image.url没有结果。 如何在模板外使用Wagtail图像?

最好的问候

2 个答案:

答案 0 :(得分:5)

如果您需要获取演绎(缩略图)的URL,您可以执行以下操作:

artwork_page_object.image.get_rendition('height-100').url

或访问节目文件:

artwork_page_object.image.get_rendition('height-100').file

您可以对height-100模板标记使用任何有效的大小调整方法,而不是image(请参阅the documentation for the image标记)

如果您想访问原始图片,可以这样做:

artwork_page_object.image.file

有用的文档:

答案 1 :(得分:1)

模板标签只是您可以找到代码on github的函数。图片代码依赖于模型FilterRendition

我建议您阅读该代码以了解其工作原理,然后在您的视图中使用它。