Plone 如何获取灵巧内容类型的图像并在批处理列表视图中显示?
我需要创建一个文件夹的批处理列表视图,其中包含基于灵巧度的内容类型(Plone 4.2),该视图还显示了它们的图像。 我找到了两种获得物体图像的方法 方法1: 在模板中(批内) 在模板中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"
...
<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>