I have 4 fields but only 2 can be selected as maximum. If 3 fields were selected, I would need to raise a ValidationError. How can I do this? By the way, they can be selected in random order.
field1 = fields.Boolean(string='Field 1')
field2 = fields.Boolean(string='Field 2')
field3 = fields.Boolean(string='Field 3')
field4 = fields.Boolean(string='Field 4')
@api.constrains('field1', 'field2', 'field3', 'field4')
def fields_constr(self):
if fields ...
Python makes it easy :)
@api.constrains('field1', 'field2', 'field3', 'field4')
def fields_constr(self):
values = [self.field1, self.field2, self.field3, self.field4]
if values.count(True) > 2:
raise ValidationError(
_('You can select two options as maximum.'),
)