Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
2870 Lượt xem

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. 



Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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,

Ảnh đại diện
Huỷ bỏ

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,

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 3 15
5336
0
thg 4 15
4633
2
thg 6 23
2244
1
thg 2 21
4819
1
thg 6 20
35305