BrowserDefaultMixin
ArcheTypesのプロダクトを作っていて、次のコードのように、BaseContentだけを継承したプロダクトを作ったら、デフォルトページが表示されません。オブジェクトが作成されていない訳ではありません。URLの後ろにviewとかeditとかつけたら、ちゃんと表示してくれます。
from Products.Archetypes.atapi import BaseContent class MyContentType(BaseContent): portal_type = meta_type = 'MyContentType' schema = BaseContent.schema.copy() + ...
調べてみると、BrowserDefaultMixinを混ぜ込まないといけないようです。こいつを入れたら、出るようになりました。
from Products.Archetypes.atapi import BaseContent from Products.CMFDynamicViewFTI.browserdefault import BrowserDefaultMixin class MyContentType(BrowserDefaultMixin, BaseContent): portal_type = meta_type = 'MyContentType' schema = BaseContent.schema.copy() + ...
ATDocumentなどのATContentTypesで定義されているコンテンツ・タイプには、すでに入っているので、継承する時に指定する必要はありません。