odoo之模块继承

  1. 在被继承模块的同级文件夹中创建继承模块的文件夹
  2. 创建__init__.py__manifest__.py
  3. __manifest__.py中depends属性中加上被继承的模块名'depends': ['module_name'],

in-place继承

in-place继承实际上就是对已有模型的引用并在原处做修改。

  1. 在py文件里定义类,使用_inherit属性即可,_inherit = 'module_name'
  2. 这种继承会获得原有模型的所有属性,如果想更改已有字段、属性甚至方法,直接在此模型里重写即可,如果想添加新的字段、属性和方法,直接在此模型写即可。
  3. 这种继承中所做的所有更改都会作用在原有模型上。

视图和数据的继承

视图的继承与修改
  1. 添加inherit_id属性,inherit_id记录字段通过 ref 属性指向继承视图的外部标识符,<field name="inherit_id" ref="module_name.view_name" />ref可以将指定视图的外部标识符转换成数据库里的id。
  2. 定位节点的方法有三种,官方文档是这样讲的:

There are three types of element locators for matching a target
element:

  1. An xpath element with an expr attribute. expr is an XPath expression applied to the current arch, the first node it finds is the match
  2. a field element with a name attribute, matches the first field with thesame name. All other attributes are ignored during matching
  3. any other element: the first element with the same name and identical attributes(ignoring position and version attributes) is matched

(1) 最简单的方法就是第二种——使用唯一标识属性,也就是field中的name字段。
在arch里定义:

<field na
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例,帮助你开始构建一个新的Odoo模块: 1. 首先,创建一个新的文件夹来存放你的模块。我们将其命名为“my_module”。 2. 在“my_module”文件夹中创建一个新的文件夹,命名为“models”。 3. 在“models”文件夹中,创建一个新的Python文件,命名为“my_model.py”。在该文件中,定义一个名为“my_model”的新模型,它将继承Odoo的“Model”类。例如: ```python from odoo import fields, models class MyModel(models.Model): _name = 'my_module.my_model' _description = 'My Model' name = fields.Char(string='Name') description = fields.Text(string='Description') ``` 在这个例子中,我们定义了一个名为“my_module.my_model”的新模型,它有两个字段:“name”和“description”。 4. 在“my_module”文件夹中,创建一个新的文件夹,命名为“views”。 5. 在“views”文件夹中,创建一个新的XML文件,命名为“my_model_view.xml”。在该文件中,定义一个名为“my_model_form”的新视图,它将显示“my_model”模型的数据。例如: ```xml <odoo> <data> <record id="my_model_form" model="ir.ui.view"> <field name="name">my_module.my_model.form</field> <field name="model">my_module.my_model</field> <field name="arch" type="xml"> <form> <sheet> <group> <field name="name"/> <field name="description"/> </group> </sheet> </form> </field> </record> </data> </odoo> ``` 在这个例子中,我们定义了一个名为“my_module.my_model.form”的新视图,它包含了“my_model”模型的两个字段:“name”和“description”。 6. 在“my_module”文件夹中,创建一个新的Python文件,命名为“__init__.py”。这个文件是必须的,即使它是空的。 7. 最后,在Odoo中安装你的新模块。在Odoo的主菜单中,点击“设置”-“应用程序”-“应用商店”,然后在搜索框中输入你的模块名称:“My Module”。点击“安装”按钮来安装你的新模块。 现在,你已经成功地构建了一个简单的Odoo模块

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值