我在模块中添加了一些新字段,目前我复制了整个api.onchange。请参见代码:
` @api.onchange('company_id')
def _onchange_company_id(self):
for wizard in self:
wizard.logo = wizard.company_id.logo
wizard.report_header = wizard.company_id.report_header
wizard.report_footer = wizard.company_id.report_footer
# NEW: wizard.report_footer1 = wizard.company_id.report_footer1
# NEW: wizard.report_footer2 = wizard.company_id.report_footer2
wizard.paperformat_id = wizard.company_id.paperformat_id
wizard.external_report_layout_id = wizard.company_id.external_report_layout_id
wizard.font = wizard.company_id.font
wizard.primary_color = wizard.company_id.primary_color
wizard.secondary_color = wizard.company_id.secondary_color
wizard_layout = wizard.env["report.layout"].search([
('view_id.key', '=', wizard.company_id.external_report_layout_id.key)
])
wizard.report_layout_id = wizard_layout or wizard_layout.search([], limit=1)
if not wizard.primary_color:
wizard.primary_color = wizard.logo_primary_color or DEFAULT_PRIMARY
if not wizard.secondary_color:
wizard.secondary_color = wizard.logo_secondary_color or DEFAULT_SECONDARY正如你所看到的,我不想把所有的东西都复制到我的模块中,只想用SUPER2扩展这2行新行。有没有人能教我怎么做。亲切的问候
附言:我是这个编程和堆栈溢出世界的新手,如果我的问题可能令人困惑甚至愚蠢,我很抱歉^^。
发布于 2021-05-05 00:20:03
很简单。如果你覆盖了一个方法,那么你可以用super()或super(YourClassName,self)来调用它。只需检查被覆盖的方法是否返回任何内容。
@api.onchange('company_id')
def _onchange_company_id(self):
result = super(YourClassName, self)._onchange_company_id()
for wizard in self:
wizard.report_footer1 = wizard.company_id.report_footer1
wizard.report_footer2 = wizard.company_id.report_footer2
return resulthttps://stackoverflow.com/questions/60224560
复制相似问题