首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有图像属性的Dexterity容器类型

带有图像属性的Dexterity容器类型
EN

Stack Overflow用户
提问于 2016-03-26 18:45:43
回答 1查看 120关注 0票数 2

环境: eea.facetednavigation 4.3.7、plone.app.contenttypes 1.1b5、Plone 8.7

我有一个自定义的Dexterity容器类型,Monument,它只保存图像项。我的目的是让Monument containing Image items的行为像News Item with the Image field一样。如果Monument中有多个图像项,则返回第一个或随机返回的图像项。

这样,我就可以将纪念碑项目及其图像显示为eea.facetednavigation视图的缩略图。

仅供参考,在eea.facetednavigation/views/preview-item.pt中有3种情况可以显示缩略图:

代码语言:javascript
复制
is_namedimage python:getattr(getattr(context, 'image', None), 'getImageSize', None) is not None;
image_thumb exists:context/image_thumb;
image_tag python:getattr(context, 'tag', None)"

plone.app.discussion/interfaces.py的例子启发了我。因此,我尝试了以下方法:

models/monument.xml

代码语言:javascript
复制
<schema>
...
 <field name="image"
  type="plone.namedfile.field.NamedBlobImage">
  <title i18n:translate="">Image</title>
  <readonly>True</readonly>
 </field>
...
</schema>

content.py

代码语言:javascript
复制
@implementer(IMonument)
class Monument(Container):
    """Container Subclass for Monument
    """

    @property
    def image(self):
        catalog = getToolByName(self, 'portal_catalog')
        path = '/'.join(self.getPhysicalPath())
        brain = catalog(path={"query": path}, portal_type=['Image'])
        obj = brain[0].getObject()
        return obj.image

但是,纪念碑项目似乎没有相应的image属性。我是在朝着正确的方向前进吗?任何提示都是值得感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-04-03 20:11:42

你能为你的纪念碑-文件夹类型使用LeadImageBehavior吗?如果您需要一个image字段,请在profile/default/types/stanent.xml中添加此字段。然后,您可以为纪念碑注册IObjectModifiedEvent并在事件中操作imagefield。

代码语言:javascript
复制
<?xml version="1.0"?>
<object name="Monument" meta_type="Dexterity FTI">
  <property name="behaviors" purge="False">
    <element value="plone.app.contenttypes.behaviors.leadimage.ILeadImage"/>
  </property>
</object>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36234373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档