Python FastApi/Pydantic从父表访问多对一关系
我有一个这样的结构: SqlAlchemy模型Python FastApi/Pydantic从父表访问多对一关系,python,api,sqlalchemy,fastapi,pydantic,Python,Api,Sqlalchemy,Fastapi,Pydantic,我有一个这样的结构: SqlAlchemy模型 class MPrueba(Base): __tablename__ = 'M_pruebas' idpruebas = Column(Integer, primary_key=True) idfuentes = Column(ForeignKey('M_fuentes.idfuentes', ondelete='RESTRICT', onupdate='RESTRICT'), index=True) M_fu
class MPrueba(Base):
__tablename__ = 'M_pruebas'
idpruebas = Column(Integer, primary_key=True)
idfuentes = Column(ForeignKey('M_fuentes.idfuentes', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
M_fuente = relationship('MFuente')
class MRegla(Base):
__tablename__ = 'M_reglas'
idreglas = Column(Integer, primary_key=True)
idpruebas = Column(ForeignKey('M_pruebas.idpruebas', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
nombre = Column(String(40))
M_prueba = relationship('MPrueba')
class Prueba(BaseModel):
idpruebas: int
idfuentes: int
reglas : # Append the MRegla here
class Config:
orm_mode = True
正如您所看到的,MRegla类上有一个指向MPrueba类的关系。这意味着,当我对MRegla类发出一些get请求时,M_prueba字段应该包含来自MPrueba类的数据。如何从MPrueba类访问该关系??。我想生成一个pydantic模型,如下所示:
MPrueba类的pydantic模式
class MPrueba(Base):
__tablename__ = 'M_pruebas'
idpruebas = Column(Integer, primary_key=True)
idfuentes = Column(ForeignKey('M_fuentes.idfuentes', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
M_fuente = relationship('MFuente')
class MRegla(Base):
__tablename__ = 'M_reglas'
idreglas = Column(Integer, primary_key=True)
idpruebas = Column(ForeignKey('M_pruebas.idpruebas', ondelete='RESTRICT', onupdate='RESTRICT'), index=True)
nombre = Column(String(40))
M_prueba = relationship('MPrueba')
class Prueba(BaseModel):
idpruebas: int
idfuentes: int
reglas : # Append the MRegla here
class Config:
orm_mode = True
谢谢你的帮助。如果我理解正确,我正在处理一个类似的问题。虽然我不确定你是否有多对一的关系,但无论如何 使用先前定义的Pydantic模型:
class MRegla(BaseModel):
...
class Prueba(BaseModel):
idpruebas: int
idfuentes: int
reglas : MRegla
class Config:
orm_mode = True
如果您需要MRegla模型的子集,请定义一个带有必填字段的附加Pydantic模型,并使用它。我不明白您在此处附加MRegla是什么意思。如果您找到了解决方案,请将其作为答案写下来。