Skip to content

通过列删除单条/多条记录

delete_model_by_column
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 delete(self, db: AsyncSession) -> int:
        return await self.delete_model_by_column(db, name="foo")

API

async def delete_model_by_column(
    self,
    session: AsyncSession,
    allow_multiple: bool = False,
    logical_deletion: bool = False,
    deleted_flag_column: str = 'del_flag',
    flush: bool = False,
    commit: bool = False,
    **kwargs,
) -> int:

Parameters:

Name Type Description Default
session AsyncSession 数据库会话 必填
allow_multiple bool 设置为 True,将允许删除多条记录,删除的数量取决于过滤器过滤后的数据 False
logical_deletion bool 设置为 True,将不会从数据库中直接删除数据,而是通过更新的方式,将数据库删除标志字段的值进行更新 False
deleted_flag_column str 设置指定逻辑删除的字段 del_flag
flush bool 冲洗 False
commit bool 提交 False

**kwargs

条件过滤,将删除符合条件的数据

Returns:

Type Description
int 删除数量