如何设置约束以允许选择2个字段作为最大值?

时间:2022-03-07 07:22:01

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.

我有4个字段,但最多只能选择2个字段。如果选择了3个字段,我需要引发ValidationError。我怎样才能做到这一点?顺便说一下,它们可以按随机顺序选择。

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 ...

1 个解决方案

#1


1  

Python makes it easy :)

Python让它变得简单:)

@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.'),
        )

#1


1  

Python makes it easy :)

Python让它变得简单:)

@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.'),
        )