小编mma*_*nez的帖子

有没有办法扩展Plone Dexterity的INameFromTitle行为?

我正在开发的项目使用了Plone令人敬畏的Dexterity插件.我的一些自定义内容类型具有必须计算的非常具体的名称.我之前完成此操作的方法是将plone.app.content.interfaces.INameFromTitle添加为对象的通用设置条目中的行为,按照手册的说明:

<?xml version="1.0"?>
<object name="avrc.aeh.cycle" meta_type="Dexterity FTI">
  ...
  <property name="schema">myproject.mytype.IMyType</property> 
  <property name="klass">plone.dexterity.content.Item</property>
  ...
  <property name="behaviors">
    <element value="plone.app.content.interfaces.INameFromTitle" />
  </property>
  ...
</object>
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个提供INameFromTitle的适配器:

from five import grok
from zope.interface import Interface
import zope.schema
from plone.app.content.interfaces import INameFromTitle

class IMyType(Interface):

    foo = zope.schema.TextLine(
        title=u'Foo'
        )

class NameForMyType(grok.Adapter):
    grok.context(IMyType)
    grok.provides(INameFromTitle)

    @property
    def title(self):
        return u'Custom Title %s' % self.context.foo
Run Code Online (Sandbox Code Playgroud)

此方法与此博客文章中建议的方法非常相似:

http://davidjb.com/blog/2010/04/plone-and-dexterity-working-with-computed-fields

不幸的是,这个方法在plone.app.dexterity beta之后停止工作,现在我的内容项没有正确分配它们的名字.

有人会碰巧知道如何为非常具体的命名用例扩展Dexterity的INameFromTitle行为吗?

非常感谢您的帮助,谢谢!

behavior plone adapter dexterity

7
推荐指数
1
解决办法
1532
查看次数

标签 统计

adapter ×1

behavior ×1

dexterity ×1

plone ×1