Override the creation method to create records for another model

I need to override the create method for the model. I have two models.

1.'person_travel

2.'person_calender

what I plan to do is when I create a record for traveling through the model, it should automatically create a record for the person_calender model.

My ultimate goal is to create a travel record that has a date field. I need my calendar view to display events on this date.

This is my first model.

class Travel(models.Model): _name = 'person_travel' name = fields.Char('Travel name',size=64,required=True) package = fields.Many2one('package_travel','Package',required=True) travel_Mode = fields.Selection((('a','Bus'), ('b','Van'), ('c','Car'), ('d','Flight'), ('e','Train'), ('f','Ship'), ('g','Motor cycle'), ('h','Other')),'Travel mode') from_Place = fields.Char(size=64) To_Place = fields.Char(size=64) status = fields.Selection((('a','Pending'), ('b','Planned'), ('c','Done')),'Status') start_date = fields.Date('Start date') end_date = fields.Date('End date') ticket_number = fields.Char(size=64) seat_number = fields.Char(size=64) description = fields.Text(size=64) one_to_many = fields.One2many('carry_item','one_to_many') @api.model def create(self, values): print values 

and this is my second model ....

 class Calender(models.Model): _name = 'person_calender' start = fields.Date('start') # stop = fields.Datetime('stop') state = fields.Many2one('person_manage') subject = fields.Char(size=64) category = fields.Selection((('a','Important'), ('b','Business'), ('c','Personel'), ('d','Business'), ('e','Travel'), ('f','Medical'), ('g','Finance'),('h','Anniversary'),('i','Birthday')),'category') description = fields.Text(size=64)` 
+4
source share
1 answer

Their tons of mistakes you need to fix. The naming convention is completely wrong. field string and much name comodel_name etc .... you need to fix it.

In any case, if you see that I have added code on how to create a record to create some record. which will give you an idea of ​​the full values ​​of the record fields.

 class Calender(models.Model): _name = 'person.calender' start_date = fields.Date(string='Start Date') stop_date = fields.Datetime(string='Stop Date') state = fields.Many2one(comodel_name='person.manage') name = fields.Char(size=64, string="Subject") category = fields.Selection((('a','Important'), ('b','Business'), ('c','Personel'), ('d','Business'), ('e','Travel'), ('f','Medical'), ('g','Finance'),('h','Anniversary'),('i','Birthday')),'category') description = fields.Text(size=64) class Travel(models.Model): _name = 'person.travel' name = fields.Char('Travel name',size=64,required=True) package = fields.Many2one('package_travel','Package',required=True) travel_Mode = fields.Selection((('a','Bus'), ('b','Van'), ('c','Car'), ('d','Flight'), ('e','Train'), ('f','Ship'), ('g','Motor cycle'), ('h','Other')),'Travel mode') from_Place = fields.Char(size=64) To_Place = fields.Char(size=64) status = fields.Selection((('a','Pending'), ('b','Planned'), ('c','Done')),'Status') start_date = fields.Date('Start date') end_date = fields.Date('End date') ticket_number = fields.Char(size=64) seat_number = fields.Char(size=64) description = fields.Text(size=64) one_to_many = fields.One2many('carry_item','one_to_many') @api.model def create(self, vals): record = super(Travel, self).create(vals) if record.start_date and record.end_date: self.env['person.calender'].create({ 'start_date': record.start_date, 'end_date': record.end_date, 'name': record.name, }) return res_id 

Bests

+6
source

All Articles