Odoo添加功能以默认创建动作

时间:2019-03-02 17:44:56

标签: odoo odoo-11

我有这个功能

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

当我按下“创建”按钮并创建新记录时如何命名?

1 个答案:

答案 0 :(得分: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

如果模型是在自己的自定义模块中定义的,则只需将此创建函数插入该模型定义中,就无需在新类中继承。