Plone:默认显示新创建的内容

Plone: default display for new created content

我有一个浏览器视图 my_custom_display,可以使用菜单 select 编辑文件夹:显示 -> my_custom_display。

问题出现在我 select 自定义显示之后,我正在尝试使用此自定义显示在文件夹中创建新对象。

默认情况下,所有新项目似乎都有 my_custom_display,我的解决方案是用 /selectViewTemplate?templateId=folder_listing 手动修复它。

对于这种情况,更好的解决方案是什么? (仅为项目本身而不是其中的任何新子项设置显示。)

(这很烦人,因为如果在错误的地方使用我的浏览器视图会产生错误。是的,我可以改进它,但是...)

更新: 在 /portal_types/Folder/manage_propertiesForm 中,我在可用视图方法中添加了 my_custom_display。我只需要它用于特定文件夹。

通过在创建文件夹时强制布局设置解决:

<subscriber
    for="Products.ATContentTypes.interfaces.IATFolder
         Products.Archetypes.event.ObjectInitializedEvent"
    handler="my.package.globalhandlers.set_folder_listing_by_default" />

已添加到 configure.cfg。 那么:

def set_folder_listing_by_default(folder, event):
    """ Set folder_listing as default Display for new created folders.
    """
    folder.setLayout('folder_listing')

看起来不太好,但它解决了我的问题。 :)