在扩展内容类型上重新排序字段

时间:2014-03-24 19:27:02

标签: plone plone-4.x

我使用archetypes.schemaextender扩展了一个基本的Plone内容类型。我需要重新排序编辑页面上的字段。当我这样做时,重新排序的字段出现在编辑界面上名为“content”的新选项卡中。如何让字段显示在编辑界面的“默认”选项卡中?

以下是我的extender.py中的代码段:

class extenddocument(object):
    adapts(IATDocument)
    implements(IOrderableSchemaExtender, IBrowserLayerAwareExtender)

    layer = IextenddocumentLayer

    fields = [
        _ExtensionStringField(
            name='longTitle',
            widget=StringWidget(
                label=u'Long Title',
                description=u'Optional descriptive title to replace default title as the page heading',
                size='50',
            ),
            required=False,
            searchable=True,
        ),
    ]

    def __init__(self, context):
        self.context = context

    def getOrder(self, schematas):
            """ Manipulate the order in which fields appear.
                @param schematas: Dictonary of schemata name -> field lists
                @return: Dictionary of reordered field lists per schemata.
            """
            schematas["Content"] = ['title', 'longTitle', 'description', 'text']
            return schematas

    def getFields(self):
        return self.fields

附件是编辑标签视图: enter image description here

2 个答案:

答案 0 :(得分:3)

在getOrder方法中,将字段列表分配给schematas ['默认']而不是schematas [' Content']。

答案 1 :(得分:1)

或者,因为您实际上不需要额外的字段集,因为添加的字段无论如何都会附加到default-fieldset,您也可以只重新排序字段 - 而不是整个字段集 - 如此处所述:

http://developer.plone.org/content/archetypes/fields.html#reordering-fields

这是一个很好的Inqbus文档,它为您提供了重新排序字段和fielsets的可能性的概述,它是德语的,但代码部分是自我解释的:

http://inqbus-hosting.de/support/dokumentation/docs/plone-archetypes-schemata-und-fields