Hello
How to Override/Replace create function NOT extending (adding onto)
Thanks in advance
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hi, Yazeed
There have two ways to override create(ORM functions).
Call inherited function as well as other which are inherit before,
class CustomModel(models.Model):
_inherit = "custom.model"
@api.model
def create(self, vals):
return super(CustomModel, self).create(vals)
It will call current method as well as all the create methods which are inherited before.
Call self and Models.model definition,
class CustomModel(models.Model):
_inherit = "custom.model"
@api.model
def create(self, vals):
## Definition
return super(models.Model, self).create(vals)
Here only this function and create function of "model.Model" will call
Thanks Ashish, solved
Dear Yazeed,
class ModelModel1(models.Model):
_name = "table.table"
_description = "Test"
@api.multi
def test_method(self):
{fuction definition}
@api.model
def create(self, vals):
vals['number'] = self.env['ir.sequence'].next_by_code('annual.achievement.request.seq')
val['field1'] = 'name'
val['field2'] = 'age'
rec = super(ModelModel1, self).create(vals)
rec.test_method()
return rec
As like you can change any value or add value to the create function. also, you can call external methods also.
Thanks Nikhil
สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!
ลงชื่อ
1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.
Reference: https://goo.gl/4BkizH