2017-02-26 48 views
0

使用鹡鸰图片的标签的workarround我以下的问题: 在我的models.py我使用的是鹡鸰图片是这样的:是否有在views.py

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

我知道我可以现在用在我的模板的形象是这样的:

{% image artwork.image height-100 %} 

但对于我目前的项目,我需要使用图片标签在我的views.py,因为我想产生它的PDF文件。

使用artwork.image,影像将返回的只是标题简单,但我需要这样的:

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

而且artwork.image.url没有给出结果。 如何在模板外使用W Images图像?

问候

回答

4

如果你需要得到再现(缩略图)的网址,你可以做到以下几点:

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

的get_rendition()方法是直到一周前没有记录 - 我只是提供了新的官方文件对此的认识:http://docs.wagtail.io/en/latest/advanced_topics/images/renditions.html – shacker

+1

谢谢,@shacker。我已将您的链接添加到答案中。 – m1kola

1

模板标签只是功能,你可以找到的代码on github。图像标签依赖于型号FilterRendition

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