Как переопределить метод мастера на odoo 12
Я пытаюсь переопределить единственный метод класса мастера, который запускается, когда пользователь нажимает кнопку "Отправить".
account_consolidation_custom / wizard / CustomClass.py
class AccountConsolidationConsolidate(models.TransientModel):
_name = 'account.consolidation.consolidate_custom'
_inherit = 'account.consolidation.base'
def get_account_balance(self, account, partner=False, newParam=False):
....my custom code...
account_consolidation_custom / __ manifest_.py
{
'name': "account_consolidation_custom",
'summary': """""",
'description': """
""",
'author': "My Company",
'website': "http://www.yourcompany.com",
'category': 'Uncategorized',
'version': '0.1',
'depends': ['base','account_consolidation'],
# always loaded
'data': [],
}
Имя метода точно такое же, как и у оригинала, но когда я нажимаю кнопку отправки, кажется, ничего не происходит, метод все еще вызывается из базового модуля, а не из пользовательского.
Вы знаете, как перезаписать только один метод вместо всего класса мастера?
2 ответа
Вы создаете новую модель мастера / переходного процесса при присвоении различных значений частным атрибутам _name
а также _inherit
. Вместо этого вы должны использовать оригинальное название модели odooaccount.consolidation.consolidate
к обоим атрибутам или просто удалите _name
атрибут полностью.
Odoo имеет собственный механизм наследования, управляемый тремя атрибутами класса. _name
, _inherit
а также _inherits
.
Мне удалось заставить его работать, используя следующий код:
class AccountConsolidationConsolidate(models.TransientModel):
_inherit = 'account.consolidation.consolidate'
def get_account_balance(self, account, partner=False, newParam=False):
....my custom code...
После этого я смог перезаписать базовые методы.