Odoo将函数添加到默认创建操作

问题描述 投票:0回答:1

我有这个功能

def add_default_docs(self):
for r in self:
    id = self.id

    labs_archive_journal_type_id = r.journal_type_id.id

    archive_doc_name_ids = self.env['labs.archive.journal_type'].search([('id', '=', labs_archive_journal_type_id)]).archive_doc_name_ids

    for n in archive_doc_name_ids: 

        self.env['labs.archive.document'].create({

                    "archive_journal_id": id, 

                    "name": n.id
})

当我按下“创建”按钮并创建新记录时,我该如何调用它?

odoo odoo-11
1个回答
1
投票

无论您希望在新模型上创建此函数时,如果该模型是内置的odoo,或者如果您自己的模型在该模型定义中继承create方法,则继承该模型:

class ClassName(models.Model)
  _inherit = 'model.name'

  @api.multi
  def create(self, vals):
    records = super(ClassName, self).create(vals)
    records.add_default_docs()
    return records

如果您的模型是在您自己的自定义模块中定义的,则只需在该模型定义中插入此create函数,您就不需要在新类中继承。

© www.soinside.com 2019 - 2024. All rights reserved.