次の行に沿って何かを行うことで、kotti のコンテンツ タイプの「ビュー」を追加できます。
from kotti_mysite.views import poll_view
config.add_view(
poll_view,
context=Poll,
name='view',
permission='view',
renderer='kotti_mysite:templates/poll.pt',
)
(詳細: http://kotti.readthedocs.org/en/latest/first_steps/tut-2.html )
複数のビューを作成して「デフォルト ビューの設定」を使用することもできますが、非常によく似た URL を持つ類似のビューを複数作成すると便利な場合があります。
たとえば、plone では、次のような URL 構造を持つことは簡単です。
- /blah/item/ <--- 通常表示
- /blah/item/json <--- アイテムの JSON バージョン
- /blah/item/pdf <--- アイテムの PDF ダウンロード
作成したビューを台無しにして、get/post パラメータに基づいてさまざまなコンテンツをレンダリングすることで、kotti で同様のことを行うことができますが、面倒で、率直に言って、かなりゴミです。
私が見つけた唯一の解決策は、jsonレンダラーを持つカスタムコンテンツタイプ「JsonView」を持ち、それを親オブジェクトの子として追加することです。レンダラーは親コンテンツを探し、それをレンダリングします。
ただし、これを行うには、必要なタイプのインスタンスごとに「JsonView」子を手動で作成する必要があり、これもかなり面倒です。
これを行うより良い方法はありますか?
--
注意 具体的には、カスタム ビュー /blah/item/json を使用してもまったく役に立たないことに注意してください。任意の親フォルダー内の任意のタイプのアイテムを上記の方法でレンダリングできる必要があります。単一の静的ルートを使用することは適切な解決策ではありません。