标签:XML 菜单 界面 视图 UI Odoo test model CSV
数据文件(XML)
前面,我们通过CSV文件添加了数据。当要加载的数据具有简单格式时,CSV 格式很方便。当格式更复杂时(例如加载视图的结构或电子邮件模板),我们使用 XML 格式。虽然可以通过 CSV 文件加载此类数据,但使用 XML 文件更方便。
XML 文件必须添加到与 CSV 文件相同的文件夹中,并且在 __manifest__.py
. 安装或更新模块时,数据文件的内容也会按顺序加载,因此对 CSV 文件所做的所有说明都适用于 XML 文件。当数据链接到视图时,我们将它们添加到views
文件夹中。
在 Odoo 中,用户界面(操作、菜单和视图)主要是通过创建和组合 XML 文件中定义的记录来定义的。一个常见的模式是菜单 > 操作 > 视图。要访问记录,用户需要浏览多个菜单级别;最深层次是触发打开记录列表的动作。
动作(Actions)
可以通过三种方式触发操作:
- 通过单击菜单项(链接到特定操作)
- 通过单击视图中的按钮(如果这些按钮与操作相关联)
- 作为对象的上下文动作
这里只介绍第一种情况
例如,我们有一个test.model
模型,他的最基本的动作是:
<record id="test_model_action" model="ir.actions.act_window">
<field name="name">Test action</field>
<field name="res_model">test.model</field>
<field name="view_mode">tree,form</field>
</record>
id
是一个外部标识符。它可以用来引用记录(不知道它的数据库标识符)。model
有一个固定值ir.actions.act_window
name
是动作的名称。res_model
是动作适用的模型。view_mode
是可用的视图;在这种情况下,它们是列表(树)和表单视图。
菜单(Menus)
为了降低声明菜单 ( ir.ui.menu
) 并将其连接到相应操作的复杂性,我们可以使用<menuitem>
快捷方式 。
test_model_action
的基本菜单是:
<menuitem id="test_model_menu_action" action="test_model_action"/>
菜单test_model_menu_action
链接到动作test_model_action
,动作链接到模型test.model
。如前所述,动作可以看作是菜单和模型之间的链接。
代码
代码
estate/views/estate_property_view.xml
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<record id="estate_property_action_window" model="ir.actions.act_window">
<field name="name">房地产广告</field>
<field name="res_model">estate.property</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="estate_property_menu_action" action="estate_property_action_window"/>
</data>
</odoo>
estate/__manifest__.py
# -*- coding: utf-8 -*-
{
'name': '房产广告',
'version': '1.0',
'summary': '房产广告',
'sequence': 10,
'description': """
房产广告
""",
'author': 'Pure',
'depends': [],
'data': [
'security/ir.model.access.csv',
'views/estate_property_view.xml',
],
'installable': True,
'application': True,
}
见证奇迹
升级模块后我们可以看到该模块已经出现
进入该模块
标签:XML,菜单,界面,视图,UI,Odoo,test,model,CSV 来源: https://www.cnblogs.com/pure3417/p/16435375.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。