您可以在kotti中为内容类型添加一个“view”,方法如下:
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结构如下所示:
你可以。。。有点类似,在kotti中做一件类似的事情,改变你创建的视图,并基于get/post参数呈现不同的内容,但这很混乱,坦白说,相当垃圾。在
我找到的唯一解决方案是拥有一个自定义内容类型“JsonView”,它有一个json呈现器,并将其作为父对象的子对象添加,它的呈现器将查找父内容并呈现该父对象。在
但是,这样做需要为所需类型的每个实例手动创建一个“JsonView”子级,这也相当麻烦。在
有更好的方法吗?在
—
注意。请特别注意,使用自定义视图/blah/item/json根本没有任何用处;任何父文件夹中的任何类型的项都应该能够以上述方式呈现;使用单个静态路由不是正确的解决方案。在
您可以为所有内容注册一个json视图,如下所示:
这样,当您打开
/blah/json
,其中/blah
指向某些内容时,它将调用您的my_json_view
视图。在SQLAlchemy的new class object inspection system可能会帮助您编写一个有用的通用json视图,该视图适用于多个内容类型。或者,您可以只为特定的内容类型注册视图(通过在
config.add_view
中使用更具体的context
参数)。在使用
renderer='json'
你告诉金字塔你想使用它的json renderer。在相关问题 更多 >
编程相关推荐