在odoo的默认模块上继承和添加新的状态可以通过以下步骤实现:
_inherit
关键字来指定要继承的默认模块。fields.Selection
字段类型来定义一个状态字段,并指定其可选值。举例来说,假设要在odoo的销售模块中添加一个新的状态字段"Approved",可以按照以下步骤进行操作:
__manifest__.py
文件中使用_inherit
关键字指定要继承的销售模块,例如'depends': ['sale']
。models.py
文件中,使用fields.Selection
字段类型来定义一个状态字段,并指定其可选值,例如:class SaleOrder(models.Model):
_inherit = 'sale.order'
state = fields.Selection([
('draft', 'Quotation'),
('sent', 'Quotation Sent'),
('approved', 'Approved'),
('sale', 'Sales Order'),
('done', 'Locked'),
('cancel', 'Cancelled'),
], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft')
views.xml
文件中,更新销售模块的视图以显示新的状态字段。可以通过继承销售模块的视图,并在视图中添加新的状态字段,例如:<record id="view_sale_order_form_inherit" model="ir.ui.view">
<field name="name">sale.order.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="approved"/>
</field>
</field>
</record>
models.py
文件中,更新销售模块的业务逻辑以处理新的状态。可以通过继承销售模块的业务逻辑,并在适当的地方添加新的状态处理逻辑,例如:class SaleOrder(models.Model):
_inherit = 'sale.order'
@api.multi
def action_approve(self):
self.write({'state': 'approved'})
@api.multi
def action_confirm(self):
res = super(SaleOrder, self).action_confirm()
# 添加其他逻辑
return res
注意:以上步骤仅为示例,实际操作中可能需要根据具体需求进行调整。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品和服务选择应根据实际需求进行评估和决策。
云+社区沙龙online [国产数据库]
云+社区开发者大会(苏州站)
云+社区技术沙龙[第28期]
云+社区开发者大会(杭州站)
云+社区技术沙龙[第1期]
DBTalk技术分享会
云+社区技术沙龙[第6期]
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云