This question has been flagged
6 Replies
2450 Views

Hi Odooers,

I want to prevent the product.template object from clearing the internal reference when it's variant's internal reference changed.I tried the below code, the text is printing but product.template's internal reference value is still erased

class ProductProduct(models.Model):
_inherit = 'product.template'

@api.depends('product_variant_ids', 'product_variant_ids.default_code')
def _compute_default_code(self):
print("overridden")

kindly suggest any solutions.

Thanks in advance

Avatar
Discard
Best Answer

Hello

Or you can set the default_code field as non-compute field:

default_code = fields.Char('Internal Reference', compute=False)
Avatar
Discard
Author

let me try

Author

Thanks it worked

You're welcome

Best Answer

It seems like you have a typo. The class name should be ProductTemplate if you are trying to override product.template.

Avatar
Discard
Author

The class name doesn't matter right? only the _inherit field is what matters I think.

Best Answer



Hey all to override a computed method we need to define the field again in the inherited class

class ProductTemplate(models.Model):
_inherit = 'product.template'
default_code = field.Char(compute='_compute_default_code')
@api.one
@api.depends('product_variant_ids', 'product_variant_ids.default_code')
def _compute_default_code(self):
print("overridden")






Avatar
Discard