This question has been flagged
5 Replies
5606 Views

Hello,

I have a model res.partner and i want to make relation in the same model. The relation is married_with.

So i created many2one field and i want when i change the field of an object it will change the field of the other object.

How to do that?

Avatar
Discard

Hello,

You want to add one more filed Many2one with the same reference(res.partner)

Author Best Answer

Sorry , but what I am looking for is how to make relation in the same model.

I have a model called Person inheriting from res.partner like that. I know that the relation ono2one is not available anymore.

So i choose to make a many2one field.And i want when i change the married_with field for the person x, , it will change for person y

class Person(models.Model):
_name = 'res.partner'
_inherit = 'res.partner'
    married_with = fields.Many2one('res.partner', ondelete='set null', string='Conjoint', index=True)
Avatar
Discard
Best Answer

You

When you change for example   the client, you want to change it with another field

1- You can link it to Related

for example 

    partner_id = fields.Many2one('res.parner', string="Partner")

    phone = fields.Char( string="Identification", related='partner_id .phone')

  phone This field is present in the model 'res.parner' 

2- the other solution by fuction On_change 



@api.onchange('partner_id')
def on_change_field(self):
    self.phone = self.partner_id.phone





Avatar
Discard
Best Answer

This should give you a clue:

field_of_other_obj = fields.Many2one('referencing.object')

@api.onchange('field_of_object')
def get_changes(self):
    if self.field_of_object:
        self.field_of_other_obj = self.field_of_object.pointed_field_obj

Make sure the "field_of_other_obj" model is the same with the pointed_field_obj.

If you need more clarity, feel free to ask with what you have done (code).

Avatar
Discard