How do I write a validator that checks whether a record has a single action?
I tried the following
class MouseAction(SQLModel):
user_id: int = Field(foreign_key=user.id)
blur: int = Field(default=0)
focus: int = Field(default=0)
copy_: int = Field(alias='copy', default=0)
paste: int = Field(default=0)
left_click: int = Field(default=0)
right_click: int = Field(default=0)
double_click: int = Field(default=0)
@validator('blur', 'focus', 'copy_', 'paste', 'left_click', 'right_click', 'double_click')
def check_has_action(cls, v, values, **kwargs):
if sum(values) > 1:
raise ValueError('Only a single action is allowed per record')
elif sum(values) < 1:
raise ValueError('Record must have an action/ event')
return values