Contributors mailing list archives
contributors@odoo-community.org
Browse archives
Re: How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
by
Tecnativa. S. L., Pedro M. Baeza
Hi, Kitti, what you can do is:
class BaseModel(models.AbstractModel):
_name = 'base.model'
def _onchange_field_base(self, field_name):
... # do whatever with field_name
class SpecificModel(models.Model):
_inherit = 'base.model'
_name = 'specific.model'
@api.onchange('specific_field')
def _onchange_specific_field(self):
return self._onchange_field_base('specific_field')
Regards.
El vie., 27 sept. 2019 a las 13:31, Kitti Upariphutthiphong (<kittiu@ecosoft.co.th>) escribió:
Dear all,I have one technical challenge while doing this PR -> https://github.com/OCA/account-analytic/pull/251In the origin module, there was abstract class,
class AnalyticDimensionLine(models.AbstractModel):
_name = 'analytic.dimension.line'Which are inherited by other model, i.e., account.move.line, account.invoice.line, etc.class AccountInvoiceLine(models.Model):
_name = 'account.invoice.line'
_inherit = ['analytic.dimension.line', 'account.invoice.line']
_analytic_tag_field_name = 'analytic_tag_ids'Now, I wanted to add api.onchange method on a field which can be varied by each inheriting model via _analytic_tag_field_nameQuestion is, I would want to do the onchange on the base abstract class, analytic.dimension.line like this, but it doesn't work.class AnalyticDimensionLine(models.AbstractModel):
_inherit = 'analytic.dimension.line'@api.onchange(lambda self: self._analytic_tag_field_name) ---------------------> THIS NOT WORK
def _onchange_analytic_tag_ids(self):And so, I end up having to add @api.onchange in inheriting models. Which I think not very good.class AccountInvoiceLine(models.Model):
_inherit = 'account.invoice.line'
@api.onchange('analytic_tag_ids') ----------------------> NOT GOOD
def _onchange_analytic_tag_ids(self):Any thought are appreciated,Than you,_______________________________________________
Mailing-List: https://odoo-community.org/groups/contributors-15
Post to: mailto:contributors@odoo-community.org
Unsubscribe: https://odoo-community.org/groups?unsubscribe
Reference
-
How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
byEcosoft Co. Ltd., Kitti Upariphutthiphong-
Re: How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
byEcosoft Co. Ltd., Kitti Upariphutthiphong -
Re: How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
byCamptocamp SA, Simone Orsi -
Re: How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
byEcosoft Co. Ltd., Kitti Upariphutthiphong -
Re: How to use @api.onchange in models.AbstractModel, when the interiting class field name are different.
byTecnativa. S. L., Pedro M. Baeza
-