Odoo добавить функцию, чтобы по умолчанию создать действие - PullRequest
0 голосов
/ 02 марта 2019

У меня есть эта функция

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 голосов
/ 02 марта 2019

В зависимости от того, какую модель вы хотите запустить при создании новой модели, наследуйте эту модель, если эта модель встроена в 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

Если ваша модель определена в вашем собственном пользовательском модуле, вы можете просто вставить эту функцию создания в определение этой модели, вам не нужно наследовать в новом классе.

...