Plone 如何获取灵巧内容类型的图像并在批处理列表视图中显示?

Plone 如何获取灵巧内容类型的图像并在批处理列表视图中显示?,plone,dexterity,Plone,Dexterity,我需要创建一个文件夹的批处理列表视图,其中包含基于灵巧度的内容类型(Plone 4.2),该视图还显示了它们的图像。 我找到了两种获得物体图像的方法 方法1: 在模板中(批内) 在模板中 ... <div tal:define="item_image python:view.get_item_image(item)"> <img tal:condition="item_image"

我需要创建一个文件夹的批处理列表视图,其中包含基于灵巧度的内容类型(Plone 4.2),该视图还显示了它们的图像。 我找到了两种获得物体图像的方法

方法1:

在模板中(批内)

在模板中

         ...
         <div tal:define="item_image python:view.get_item_image(item)">
              <img tal:condition="item_image"
                   tal:replace="structure item_image" />
         </div>
。。。

有人能告诉我哪种方法最好(如果有的话)不唤醒物体吗?

我认为当前的
plone.app.imaging
在任何情况下都需要唤醒物体以访问其图像比例(毕竟它们存储在物体内部)。因此,生成对象的无唤醒列表不是很容易

好消息是,灵巧内容类型比原型内容类型更轻量级,并且通过迭代模板中的
文件夹来进行原始列表。contentItems()
,成本应该不会太高。事实上,它甚至可能比通过目录查询更快。因此,不用担心唤醒对象,只需使用
plone.app.imaging
方法:


您实际上必须唤醒对象并从schema对象获取字段

<tal:def tal:define="item_object python:item.getObject()">
    <tal:if tal:condition="python:hasattr(item_object, 'Schema')">
        <tal:d2 tal:define="image python:item_object.Schema().getField('image');
                        image python:image and image.getAccessor(item_object)();"
            tal:condition="image">
            <img id="image-rubrique" alt="" tal:attributes="src string:${item_object/absolute_url}/image_mini" />
        </tal:d2>
    </tal:if>
</tal:def>

         ...
         <div tal:define="item_image python:view.get_item_image(item)">
              <img tal:condition="item_image"
                   tal:replace="structure item_image" />
         </div>
<tal:def tal:define="item_object python:item.getObject()">
    <tal:if tal:condition="python:hasattr(item_object, 'Schema')">
        <tal:d2 tal:define="image python:item_object.Schema().getField('image');
                        image python:image and image.getAccessor(item_object)();"
            tal:condition="image">
            <img id="image-rubrique" alt="" tal:attributes="src string:${item_object/absolute_url}/image_mini" />
        </tal:d2>
    </tal:if>
</tal:def>