SQLModelCrud
SQLModelSelector¶
- SQLModel 选择器
字段¶
model¶
- 当前SQLModel ORM模型, 必须设置.
fields¶
查询字段列表.
- 支持SQLModel模型字段, SQLModel模型, 当前模型数据库表字段名
- 支持当前模型字段,和其它模型字段.
- 默认:
self.model
exclude¶
排除字段列表.从当前模型中排除的字段列表.
- 支持当前SQLModel模型字段, 当前模型数据库表字段名
- 默认: []
ordering¶
- 选择器排序字段列表.
- 默认: []
link_models¶
- 链接模型字典.较复杂,详细解析待完善.
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]