Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python FastApi/Pydantic从父表访问多对一关系_Python_Api_Sqlalchemy_Fastapi_Pydantic - Fatal编程技术网

Python FastApi/Pydantic从父表访问多对一关系

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

我有一个这样的结构:

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_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是什么意思。如果您找到了解决方案,请将其作为答案写下来。