Files
FastapiAdmin/backend/app/api/v1/module_system/params/schema.py
T
zhangtao b678588d13 refactor(schema): 移除重复的模型验证逻辑并简化字段验证
统一移除各模块schema中重复的model_validator前置处理逻辑,改用更简洁的字段验证方式
优化字段验证逻辑,移除冗余的字符串处理和类型转换代码
2025-11-11 23:34:30 +08:00

37 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
from typing import Optional
from pydantic import BaseModel, ConfigDict, Field, field_validator
from app.core.base_schema import BaseSchema
class ParamsCreateSchema(BaseModel):
"""配置创建模型"""
config_name: str = Field(..., max_length=500, description="参数名称")
config_key: str = Field(..., max_length=500, description="参数键名")
config_value: Optional[str] = Field(default=None, description="参数键值")
config_type: bool = Field(default=False, description="系统内置(True:是 False:否)")
status: bool = Field(default=True, description="状态(True:正常 False:停用)")
description: Optional[str] = Field(default=None, max_length=500, description="描述")
@field_validator('config_key')
@classmethod
def _validate_config_key(cls, v: str) -> str:
v = v.strip().lower()
import re
if not re.match(r'^[a-z][a-z0-9_.-]*$', v):
raise ValueError('参数键名必须以小写字母开头,仅包含小写字母/数字/_.-')
return v
class ParamsUpdateSchema(ParamsCreateSchema):
"""配置更新模型"""
...
class ParamsOutSchema(ParamsCreateSchema, BaseSchema):
"""配置响应模型"""
model_config = ConfigDict(from_attributes=True)