繁体   English   中英

使用 FastApi 分页时出现 Pydantic 验证问题

[英]Pydantic validation issue when using pagination with FastApi

这是我的代码片段:

from fastapi_pagination import Page, add_pagination
from fastapi_pagination.ext.sqlalchemy import paginate

@app.get("/clients", response_model=Page[PydanticModel])
def get_items(
    db: Session = Depends(get_db) ) -> Any:
                           
    items = paginate(
        db.query(Model)
        .filter(...)
    )
    ...
    # do some extra manipulations ..
    ...
    items.items = new_items
    return items

当我在response_model中指定Page[PydenticModel]时,它会在paginte()中产生问题,因为它不是最终响应类型。 PydenticModel对应于new_items而不是items (从paginate()返回),

pydantic.error_wrappers.ValidationError: validation errors for
Page[PydanticModel]

注意:我不想使用 Page[Any] 来保持良好的 Swagger 文档

我认为您需要 PydenticModel在其配置中有 orm_mode = True

我在快速 API 中使用分页并通过在 model class 中添加 orm_mode = True 来解决问题时遇到了同样的问题。

在此处搜索 orm_mode 以获取更多详细信息

示例 class orm_mode = True

class Todo(BaseModel):
     id:int
     title: str
     description: Optional[str]
     priority: int
     complete: bool
     owner_id:int

     class Config:
         orm_mode = True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM