【问题标题】:How to create custom object in ODOO?如何在 ODOO 中创建自定义对象?
【发布时间】:2017-09-01 09:08:04
【问题描述】:

有什么方法可以在 onchange 触发后创建一些新模型?

例如,我想在报价状态更改为销售订单后创建我的自定义报表对象。

【问题讨论】:

  • “创建自定义报表对象”是什么意思?
  • 这意味着我在我的模块中创建的“新”模型。我想在触发报价状态的onchange之后添加。
  • 到目前为止你尝试过什么?请您分享您在问题中的努力。

标签: python openerp odoo-10 erp


【解决方案1】:

我通过尝试覆盖 sale.order 的 action_confirm 方法解决了这个问题,并且成功了!

class sale_order(models.Model) :
     _inherit = 'sale.order'
     job_container = fields.One2many('job.container','order')

     @api.multi
     def action_confirm(self):
            super(sale_order, self).action_confirm()
            self.env['job.container'].create({
                'order': self.id
            })

【讨论】:

    【解决方案2】:

    您可以在带有装饰器@api.onchange('state')的方法内sales.order内使用以下代码创建模型的新实例

       report_model = self.env['my.custom.report.object']
       new_report_object = report_model.create({
             'report_message': 'Quotation changed state to Sales Order'
       })
    

    【讨论】:

    • 我尝试过这种方式,但是没有调用任何内容,但现在我得到了解决方案。
    • 你是对的,我没有执行代码来测试。由于状态在后端/而不是在视图中更改 - 不会触发 onchange 功能。我更改了答案,以免误导其他用户。谢谢!
    猜你喜欢
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 2010-12-08
    • 2015-11-16
    • 2021-12-29
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多