odoo视图
Posted zx125
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo视图相关的知识,希望对你有一定的参考价值。
菜单
菜单是相当于是应用的入口,如果安装好了应用,但是在菜单不显示,这个应用是没有作用的
创建菜单-menus.xml
注意
动作必须先定义在使用
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- 主菜单定义 -->
<menuitem id="menu_todo" name="Todo"/>
<menuitem id="menu_todo_submenu" parent="menu_todo" name="待办事项"/>
<!-- 菜单动作定义 -->
<record id="action_todo_task" model="ir.actions.act_window">
<field name="name">待办事项</field>
<field name="res_model">todo.task</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="target">current</field>
</record>
<record id="action_todo_category" model="ir.actions.act_window">
<field name="name">分类</field>
<field name="res_model">todo.category</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="target">current</field>
</record>
<!-- 子菜单定义 -->
<menuitem action="action_todo_category" id="submenu_todo_category" name="分类" parent="menu_todo_submenu"
sequence="8"/>
<menuitem action="action_todo_task" id="submenu_todo_task" name="事项" parent="menu_todo_submenu"
sequence="9"/>
</data>
</odoo>
列表视图
数据展示,默认是显示一个字段的
https://segmentfault.com/a/1190000014047552
<odoo>
<data>
<record id="todo_task_view_tree" model="ir.ui.view">
<field name="name">todo.task.view_tree</field>
<field name="model">todo.task</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Todo">
<field name="name"/>
<field name="is_done"/>
</tree>
</field>
</record>
</data>
</odoo>
表单视图
一对多
不显示一方的多方数据
<record id="todo_category_view_form" model="ir.ui.view">
<field name="name">todo.category.view_form</field>
<field name="model">todo.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Todo Category">
<sheet>
<group>
<group>
<field name="name"/>
</group>
<group>
<field name="count" readonly="True"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
或者直接使用这种可以在外部修改数据,不跳转界面的方式 editable="bottom"
<record id="todo_category_view_tree" model="ir.ui.view">
<field name="name">todo.category.view_tree</field>
<field name="model">todo.category</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Todo Category" editable="bottom">
<field name="name"/>
<field name="count"/>
</tree>
</field>
</record>
表单视图规划
<record id="todo_task_view_form" model="ir.ui.view">
<field name="name">todo.task.view_form</field>
<field name="model">todo.task</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Todo">
<sheet>
<group>
<group>
<field name="name"/>
<field name="category_id"/>
<field name="is_done"/>
</group>
<group>
<field name="priority"/>
<field name="deadline"/>
<field name="is_expired" readonly="True"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
搜索视图
搜索框
搜索框默认只会根据模型的name字段进行搜索,如果想要搜索更多的字段,需要定义搜索视图
#搜索视图基本结构
<record id="todo_task_view_filter" model="ir.ui.view">
<field name="name">todo.task.view_filter</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<search string="Todo">
...
</search>
</field>
</record>
#配置允许搜索的字段
<search string="Todo">
<field name="name"/>
<field name="category_id"/>
</search>
#自定义过滤器
<separator/>
<filter string="未完成" name="undone" domain="[(‘is_done‘, ‘=‘, False)]"/>
<filter string="已完成" name="done" domain="[(‘is_done‘, ‘=‘, True)]"/>
<separator/>
<filter string="待办" name="todo" domain="[(‘priority‘, ‘=‘, ‘todo‘)]"/>
<filter string="普通" name="normal" domain="[(‘priority‘, ‘=‘, ‘normal‘)]"/>
<filter string="紧急" name="urgency" domain="[(‘priority‘, ‘=‘, ‘urgency‘)]"/>
#分组-expend为1数据默认展开
<group expand="0" string="分组">
<filter name="group_by_name" string="" context="{‘group_by‘: ‘name‘}"/>
<filter name="group_by_name" string="" context="{‘group_by‘: ‘category_id‘}"/>
</group>
参考链接
https://segmentfault.com/a/1190000014047552
https://www.cnblogs.com/ygj0930/p/10826168.html比较全面
https://www.cnblogs.com/sunshuhai/p/11661573.html
以上是关于odoo视图的主要内容,如果未能解决你的问题,请参考以下文章