Odoo 添加功能到默认创建操作

Odoo add function to defaul create action

我有这个功能

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
})

当我按下'Create'按钮并创建新记录时如何调用它?

无论您想在创建新模型时触发此功能的哪个模型,如果该模型是 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

如果您的模型是在您自己的自定义模块中定义的,您只需在该模型定义中插入此创建函数即可,您无需在新的 class.

中继承