我们在前一章中看到,Odoo 能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是绝对不可接受的。相反,我们至少应该以合理的方式组织各个字段。
视图在 XML 文件中定义,包含操作和菜单。它们是 ir.ui.view 模型的实例。
在房地产模块中,我们需要以合理的方式组织字段:
- 在列表(树形)视图中,我们希望显示的不仅仅是名称。
- 在表单视图中,字段应该分组。
- 在搜索视图中,我们必须能够搜索名称以外的内容。具体来说,我们需要 "可用 "属性的过滤器和按邮编分组的快捷方式。
列表(List)
列表视图也叫树形视图,以表格形式显示记录。
它们的根元素是 <tree>。这种视图的最基本版本只是列出要在表中显示的所有字段(每个字段都是一列):
<tree string="Tests">
<field name="name"/>
<field name="last_seen"/>
</tree>
以下是odoo源码中一个真实的例子:
<record id="crm_lost_reason_view_tree" model="ir.ui.view">
<field name="name">crm.lost.reason.tree</field>
<field name="model">crm.lost.reason</field>
<field name="arch" type="xml">
<tree string="Channel" editable="bottom">
<field name="name"/>
</tree>
</field>
</record>
我们现在的列表页,只显示了name一个值。
本文结尾将实现以下功能,在列表也显示多个字段的数据:
实践练习
为了实现这个功能&