Odoo(九):简单的UI界面
数据文件(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, }
见证奇迹
升级模块后我们可以看到该模块已经出现
进入该模块
下面未定义的tree视图和form视图。
当我们没有定义tree视图和form视图的时,Odoo会生成一个默认的form视图tree视图的页面,可能默认的页面对于我们来说官感不是太好,而且某些字段是具有关联性的会对为止有要求,当然我们可以自定义这些字段的位置,后面会讲
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库