列
通过列更新单条/多条记录
update_model_by_columnn
from pydantic import BaseModel
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 UpdateIns(BaseModel):
# your pydantic schema
pass
class CRUDIns(CRUDPlus[ModelIns]):
async def create(self, db: AsyncSession, obj: UpdateIns) -> int:
return await self.update_model_by_column(db, obj, name="foo")
API¶
async def update_model_by_column(
self,
session: AsyncSession,
obj: UpdateSchema | dict[str, Any],
allow_multiple: bool = False,
flush: bool = False,
commit: bool = False,
**kwargs,
) -> int:
Parameters:
Name | Type | Description | Default |
---|---|---|---|
session | AsyncSession | 数据库会话 | 必填 |
obj | TypeVar |dict[str, Any] |
更新数据参数 | 必填 |
allow_multiple | bool | 设置为 True ,将允许更新多条记录,更新的数量取决于过滤器过滤后的数据 |
False |
flush | bool | 冲洗 | False |
commit | bool | 提交 | False |
**kwargs
条件过滤,将更新符合条件的数据
Returns:
Type | Description |
---|---|
int | 更新数量 |