在处理基于敏捷的项目时,我需要一种内容类型来支持collective.quickupload,方法是使用IQuickUploadCapable接口进行标记.
我目前正在做的是在configure.zcml文件中添加'implements':
`<class class="plone.dexterity.content.Container">
<implements interface="collective.quickupload.browser.interfaces.IQuickUploadCapable" />
</class>`
Run Code Online (Sandbox Code Playgroud)
由于我的内容类型是一个容器,但是我的第一个倾向是使用grok样式方法而不是在ZCML中声明它.什么是告诉我的灵巧内容类型的grok/dexterity方法,它实现了一个额外的接口,还是我应该坚持当前的方法?
此外,我尝试在我的profiles/default/types/my.dexterity.content.xml文件中添加接口作为行为,但这不起作用(我并不真的期望它作为行为服务于不同的目的).
您不能将其用作行为,因为它没有声称以这种方式使用。
正如我从pypi中读到的,它旨在用于 portlet 或 viewlet 中。
要将其添加为 grok 风格,您应该:
from collective.quickupload.browser.interfaces import IQuickUploadCapable
from plone.directives import form
class IMyContent(form.schema):
grok.implements(IQuickUploadCapable)
Run Code Online (Sandbox Code Playgroud)
就是这样!
确保您的内容类型允许在其中添加文件,因此既是文件夹式的又允许添加文件(或者它不限制于任何特定的内容类型)。