Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
2828 Visualizzazioni

I override create method@api.model

def create(self, vals):
if vals.get('branch_id'):
fields_to_check = ['drawer_id', 'flexible_id', 'runner_id', 'group_1_id', 'group_2_id', 'group_3_id']
fields_to_check_in_vals = [vals.get(f) for f in fields_to_check]
if not any(fields_to_check_in_vals):
raise UserError('If branch is selected then you need to select one of the fields from data raport')
return super(ResPartner, self).create(vals)

it checks if branch_id is checked then 1 of the fields from fields_to_check should be seleced.

How can i do the same for write method. If some one selects branch_id fields then 1 of the fields from fields_to_check = ['drawer_id', 'flexible_id', 'runner_id', 'group_1_id', 'group_2_id', 'group_3_id'] should be selected to. 



Avatar
Abbandona
Risposta migliore

Hello Grf,


Try below code :-

@api.multi
def write(self, vals):
    res = super(ResPartner, self).write(vals)
    if self.branch_id:
        if not self.drawer_id or not self.flexible_id or not self.runner_id or not self.group_1_id or not self.group_2_id or not self.group_3_id:
            raise UserError('If branch is selected then you need to select one of the fields from data raport')
    return res


Hope it will helps you.

Thanks,

Avatar
Abbandona

res is a boolean !

you either get the value from the record ( you should make a loop on self) or from the vals : vals.get('branch_id', False) and so on

See my updated answer. Thanks,

Post correlati Risposte Visualizzazioni Attività
1
mar 15
5289
0
apr 15
4622
2
giu 23
2236
1
feb 21
4804
1
giu 20
35285