Plone4でカスタムコンテンツタイプ作ろうと思ったらハマった(その2)

 ひとまず、チュートリアルはできたので、Fileタイプを継承したものを作ることにした。まず、ATFileを継承して作ったのだが、コンテンツタブに表示させた時に、アイコンが表示されない。色々、調べているうちに、Plone4の'File'は、ATFileではないことに気付いた。Plone4からは、ファイルや画像がZODB内ではなく、Blobとして通常のファイルシステムに保存されると聞いている。どうやら、そのためにあるのが、ATBlobというクラスのようだ。CMFPloneのprofileを確認すると、ATBlobを'File'としてユーザに見せている。ATFileは、後方互換のために残されているのだろう。


 ということで、ATBlobを継承するように変更してみた。今度はFileFieldが表示されない。ATBlobのスキーマを確認してみた。どう見ても、FileFieldがあるように見えない。あちこち調べていると、SchemaExtenderという仕組みを使って、ATBlobクラス一つで、FileとImageのコンテンツタイプを兼ねさせているようだ。これも調べないといけないのね。


 PyPIのSchemaExtenderの説明にザッと目を通した。まぁ、説明を見る限りはよさげ。ついでに、Dexterityの説明にもザッと目を通した。Dexterityは、今後、Archetypesを代替していくような存在。いろいろ作り方があるなぁ。開発が活発なのはいいけど、新しいのが出てくるたびにいちいち調べないといけないのが萎える。


やっぱり、DjangoやPyramidみたいにドキュメントはしっかりしてほしいな。前よりよくなってはいるけどね。


どれで作ったらよいのか、また明日調べよう。
今日はちょっと疲れました。