Skip to content

SQLModelCrud

SQLModelSelector

  • SQLModel 选择器

字段

model

  • 当前SQLModel ORM模型, 必须设置.

fields

查询字段列表.

  • 支持SQLModel模型字段, SQLModel模型, 当前模型数据库表字段名
  • 支持当前模型字段,和其它模型字段.
  • 默认: self.model

exclude

排除字段列表.从当前模型中排除的字段列表.

  • 支持当前SQLModel模型字段, 当前模型数据库表字段名
  • 默认: []

ordering

  • 选择器排序字段列表.
  • 默认: []
  • 链接模型字典.较复杂,详细解析待完善.

pk_name

  • 当前模型主键字符串, 默认: id.
  • 说明: 数据库表有且只能有一个自增加主键.(待拓展)

pk

  • 当前模型主键sqlalchemy InstrumentedAttribute.

parser

  • 当前模型字段解析器.
  • 参考: SQLModelFieldParser

_list_fields_ins

  • 批量查询sqlalchemy字段列表.

方法:

get_select

  • 返回SQLModel选择器.
def get_select(self, request: Request) -> Select

calc_filter_clause

  • 计算查询过滤条件.
def calc_filter_clause(self, data: Dict[str, Any]) -> List[BinaryExpression]

SQLModelCrud

  • SQLModel ORM Crud注册器

继承基类

字段

session_factory

  • sqlalchemy AsyncSession 生成器, 必须设置.
session_factory: Callable[..., Generator[AsyncSession, Any, None]]
  • 获取示例
engine: AsyncEngine = create_async_engine(database_url, future=True, pool_recycle=1200)
session_maker: sessionmaker = sessionmaker(engine, class_=AsyncSession,
                                           expire_on_commit=False,autocommit=False,autoflush=False)
async def session_factory(self) -> Generator[AsyncSession, Any, None]:
    async with self.session_maker() as session:
        yield session

readonly_fields

只读字段列表:

  • 支持SQLModel模型字段, SQLModel模型, 当前模型数据库表字段名
  • 支持当前模型字段,和其它模型字段.
  • 默认: []

方法:

get_select

  • 返回SQLModel选择器.
def get_select(self, request: Request) -> Select

on_create_pre

  • 返回创建请求处理后的数据.
async def on_create_pre(self, request: Request, obj: BaseModel, **kwargs) -> Dict[str, Any]

on_update_pre

  • 返回更新请求处理后的数据.
async def on_update_pre(self, request: Request, obj: BaseModel, **kwargs) -> Dict[str, Any]

on_filter_pre

  • 返回批量查询请求提交过滤器处理后的数据.
async def on_filter_pre(self, request: Request, obj: BaseModel, **kwargs) -> Dict[str, Any]