Skip to content

列表排序

此方法与 select_models() 方法类似,但增加了排序功能

select_models_order
from typing import Sequence

from sqlalchemy_crud_plus import CRUDPlus

from sqlalchemy import DeclarativeBase as Base
from sqlalchemy.ext.asyncio import AsyncSession


class ModelIns(Base):
   # your sqlalchemy model
   pass


class CRUDIns(CRUDPlus[ModelIns]):
   async def create(self, db: AsyncSession) -> Sequence[ModelIns]:
      return await self.select_models_order(db, sort_columns=['name', 'age'], sort_orders=['asc', 'desc'])

API

 async def select_models_order(
     self,
     session: AsyncSession,
     sort_columns: str | list[str],
     sort_orders: str | list[str] | None = None,
     **kwargs,
) -> Sequence[Row | RowMapping | Any] | None:

Parameters:

Name Type Description Default
session AsyncSession 数据库会话 必填
sort_columns str|list[str] 应用排序的单个列名或列名列表 必填
sort_orders str|list[str]|None 单个排序顺序(asc 或 desc)或与 sort_columns 中的列相对应的排序顺序列表。 如果未提供,则默认每列的排序顺序为 asc None

**kwargs

条件过滤,将创建条件查询 SQL

Returns:

Type Description
Sequence[Row[Any]|RowMapping|Any] 模型实例序列