我使用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
附件是编辑标签视图:
答案 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