![](/img/trans.png)
[英]How do I write a regex function in Python that checks if a user has only letters and numbers?
[英]How do I write a validator that checks whether a record has only a single field with int=1 among several?
如何編寫一個驗證器來檢查記錄是否具有單個操作?
我嘗試了以下
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
考慮改用enum
:
import enum
from sqlmodel import Column, Enum, Field, SQLModel
class MouseActionType(enum.Enum):
BLUR = "blur"
FOCUS = "focus"
COPY = "copy"
PASTE = "paste"
LEFT_CLICK = "left_click"
RIGHT_CLICK = "right_click"
DOUBLE_CLICK = "double_click"
class MouseAction(SQLModel):
user_id: int = Field(foreign_key="user.id")
mouse_action_type: MouseActionType = Field(sa_column=Column(Enum(MouseActionType)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.