添加视图
难易程度: 初学者
技能要求:
已经掌握了“编写一个新的内容组件”一章的内容;
懂一些表示组件的概念(可选)。
问题/任务:
既然我们已经有了两个功能完整的内容对象, 接下来要做的就是尽可能让这些功能对用户可用。不过,现在这儿只有三个非常简单的视图:增加(add),编辑(edit)和内容(contents)。这章我们将为消息和留言簿创建一个非常不错的详细留言界面和子线程视图。
解决方案:
本章的内容将围绕browser-based视图组件展开,视图将是我们在这儿主要讨论的知识,其次就是适配器。
这儿列出了编写视图的几种主要方法,下面说说需要涉及的内容:
我们已经学习了browser:addform、browser: editform和browser:containerViews 指令的使用。Forms真的令人难以置信,它允许您任意程度的定制;
browser:page和browser:pages指令是易于创建浏览器视图和成组视图最常用的指令。我们将使用这两个指令创建我们的视图;
zope:view是一个低级别的指令,它为注册多个视图(multi-views)提供相关功能,其它指令没有能力来干这些工作。
第I步: 详细消息视图
现在我们开始以创建两个新的浏览器视图为本章的目标。我们现在已经能编辑消息,可当前我们并没有查看该消息的简单视图,这是非常重要的,因为不是很多人都有权利进入编辑页面的。
消息视图应显示的详细资料如下:
标题(title)、作者(author), 创建日期/时间(creation date/time), 父标题(链接到消息)(parent title)、内容(body)。
编写视图通常包括编写页面模板、一些支持Python的视图类、一些ZCML。现在我们将开始创建页面模板。
(a) 创建页面模板
在messageboard的browser中创建名为details.pt的文件,在该文件中填充如下内容:
2
3
4
5
Message Details
6
7
11
12
16
17
21
22
30
31
35
36
37
38