3

我正在创建相当多的 Dexterity 内容类型(感谢zopeskel.dexterity开发人员!!),但即使我需要它们是不同的内容类型(搜索、集合......),它们中的一些也会被平等地呈现。

那么,有没有办法为不同的内容类型重用相同的模板呢?

好的,我让它工作了,但我想知道这是否是正确的方法:

from my.product.parent_type import IParentType, ParentType, TwoColumnsView

... code omitted ...

# Common folder for templates
grok.templatedir('parent_type_templates')

class SameTwoColumnsView(TwoColumnsView):
    grok.context(CustomClass)
    grok.require('zope2.View')

    grok.template("twocolumnsview")

任何想法?您如何跨内容类型重用模板?

4

1 回答 1

6

为此创建一个接口:

from zope.interface import Interface

class ITwoColumnViewable(Interface):
    """Can be viewed in a 2-column layout"""

然后,您将此接口分配给您的各种内容类型,并为该接口直接注册一个类型的视图:

class SameTwoColumnsView(TwoColumnsView):
    grok.context(ITwoColumnViewable)
于 2011-07-21T16:03:38.420 回答