视图写法
默认视图
<!-- 主菜单定义 -->
<menuitem id="主菜单id" name="菜单名称"/>
<!-- 子菜单定义 -->
<!-- action:点击后执行的动作 -->
<menuitem id="子菜单id" name="子菜单名称" parent="主菜单id" action="my_action"/>
<!--创建动作 -->
<!--id:唯一标识 model:自带的库 -->
<record id="my_action" model="ir.actions.act_window">
<field name="name">my_action_name/field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">tt.haha</field>
<field name="view_mode">tree,form,kanban</field>
</record>
ir.actions.act_window
是Odoo中的一个模型,用于定义在用户点击一个菜单项或按钮时要执行的操作。它具有以下一些常用的属性
name
:动作名称,将显示在菜单项或按钮上type
:指定动作的类型
ir.actions.act_window
: 打开一个新的窗口,显示指定模型的记录。常用于打开表单或列表视图。ir.actions.act_url
: 打开一个URL链接,可以是外部网址或内部Odoo链接。ir.actions.act_window_close
: 关闭当前窗口。ir.actions.act_report
: 打印或预览一份报表。ir.actions.server
: 执行一个服务器动作,通常用于触发自定义的业务逻辑。res_model
:模型名称view_mode
:视图模式
- 如form表单、tree列表、calendar日历、graph图表、kanban看板、pivot数据透视表等
view_type
:视图类型
- 如form表单、tree列表、graph表、pivot数据透视表、calendar日历、gantt甘特图等
target
:操作执行后的打开方式,如在当前窗口打开、在新窗口打开等。domain
:可选的领域过滤器,用于过滤在视图中显示的记录。context
:可选的上下文环境,为操作提供额外的上下文数据。search_view_id
:可选的搜索视图的ID,用于指定在执行操作后显示的搜索视图。
内置的模型
res.partner
:合作伙伴模型,用于管理客户、供应商等信息。
product.template
:产品模板模型,用于定义产品的基本属性。
sale.order
:销售订单模型,用于管理销售订单的信息。
purchase.order
:采购订单模型,用于管理采购订单的信息。
stock.picking
:送货单模型,用于管理库存的出入库。
account.invoice
:发票模型,用于管理发票的信息。
hr.employee
:员工模型,用于管理员工的信息。
project.task
:项目任务模型,用于管理项目任务的信息。
crm.lead
:潜在客户模型,用于管理潜在客户的信息
res.groups
: 管理和控制用户组和权限
res.currency
:处理货币相关信息的数据库模型,提供了管理货币、汇率和相关功能的机制。
自定义视图
ir.ui.view
是Odoo中的一个模型,用于表示视图(view)的定义和配置。在Odoo中,视图被用于呈现和组织用户界面的布局和内容
name
:视图的唯一标识符。model
:该视图适用的数据模型。arch
:视图的XML定义,包含了关于如何显示和操作数据的具体信息。inherit_id
:继承的视图的唯一标识符。priority
:视图的优先级,用于决定使用哪个视图。mode
:视图的模式,可以是primary(主要)或extension(扩展)。field_parent
:该视图所属的字段的名称。key2
:用于标识唯一的视图记录的键。
tree视图
test_module list tt.haha<tree> <!--name:关联的字段名 string:显示的名称--> <field name="name" string="姓名"/> <field name="age"/> </tree>
form视图
test_module form tt.haha <!--自定义form-查看单个数据--> <form>
- 使用
header
定义表单视图中显示在表单顶部的头部内容<header> <field name="name" /> <button string="button"/> <!--计算字段--> <field name="result" /> </header>
- 使用
sheet
定义表单视图中主体内容<sheet>
- 使用
group
对内容进行分组<!--默认是竖着排列 col="2":两列--> <group col="2"> <!--string:分组名,也可以在group中定义string--> <separator string="这是一个分组标题"/> <!--注意:是两层group--> <!--group就是让字段名,也就是列名显示出来--> <group> <field name="name" string="name"/> </group> </group>
- 使用
notebook
定义标签栏 ,page
定义标签页<notebook> <!--定义单个标签--> <page name="标签页名称1"> <group> <field name="name" string="name"/> </group> </page> <page name="标签页名称2"> <group> <!--readonly='1':不允许修改--> <field name="baidu_link" string="不允许修改的字段" readonly='1'/> </group> </page> </notebook>
</sheet>
</form>
scarch视图
test_module search tt.haha
- tips:设置id的时候直接写作
test_module.search
出现问题,不能直接使用<search> <!--可以搜索的字段--> <field name="name"/> <field name="age"/> </search>