sqlalchemy - Fastapi sqlalchemy pydantic 关系字段
问题描述
我只是 FastAPI/Pydantic & SqlAlchemy 的初学者 - 我有两个模型 Post 和 Category 我希望 Post 应该获取 Category 名称而不是只有 id
当我尝试使用下面的代码时,它会在控制台中出现以下错误
非常感谢您对解决此问题的任何帮助,谢谢!
response -> 1 -> category_name
field required (type=value_error.missing)
post.py 模型
class Post(Base):
__tablename__="post"
id = Column(Integer, primary_key=True, index=True)
title=Column(String(50))
user_id=Column(Integer, ForeignKey("users.id"))
category_id = Column(Integer, ForeignKey("category.id"))
category_name=relationship("Category", backref="post")
class Category(Base):
__tablename__="category"
id = Column(Integer, primary_key=True, index=True)
name = Column(String)
Pydantic 模型
class CategoryGet(BaseModel):
id:int
name:str
class Config:
orm_mode=True
class Post(BaseModel):
id = int
title=str
user_id=int
category_id = int
category_name=CategoryGet
class Config:
orm_mode=True
我的 mainapp.py
router = APIRouter()
@router.get("/", response_model=List[schemas.VehicleGet])
def get_vehicle(db: Session = Depends(get_db), skip: int = 0, limit: int = 50) -> Any:
vehicle = crud.post.get_multi(db, skip=skip, limit=limit)
return vehicle
解决方案
Pydantic 模型属性使用:
而不是=
class Post(BaseModel):
id: int
title: str
user_id: int
category_id: int
category_name: CategoryGet
class Config:
orm_mode = True
推荐阅读
- android - 如何为android方法和类编写单元测试?
- mysql - MySQL - 在昨天下午 3 点和今天早上 7:30 之间选择行
- android - Android房间插入失败
- vba - 您可以在 VBA Dir 函数中使用多个通配符吗?
- amazon-web-services - 我们的记录中不存在您提供的 AWS 访问密钥 ID,但已设置凭证
- windows - 在任务计划程序中的路径开始被忽略
- airflow - 气流任务实例卡在重试模式
- java - JUnit 5中TestName规则的等价物是什么?
- c# - 如何忽略 HttpWebRequest 中的 404 响应
- ssl - 为 X.509 证书颁发 CSR 和密钥文件时文件名的重要性