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_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') 

Как видите, существует связь между классом MRegla и классом MPrueba. Это означает, что когда я делаю некоторый запрос на получение в классе MRegla, поле M_prueba должно содержать данные из класса MPrueba. Как я могу получить доступ к этим отношениям из класса MPrueba??. Я хочу создать такую ​​питантическую модель:

пидантическая схема для класса MPrueba

class Prueba(BaseModel): 
    idpruebas: int
    idfuentes: int
    reglas : # Append the MRegla here

    class Config:
        orm_mode = True

Спасибо за вашу помощь.

1 ответ

У меня аналогичная проблема, если я правильно понимаю. Хотя я не уверен, что у вас отношения многие к одному, но тем не менее.

Используйте свою ранее определенную модель Pydantic:

      class MRegla(BaseModel):
    ...

class Prueba(BaseModel): 
    idpruebas: int
    idfuentes: int
    reglas : MRegla

    class Config:
        orm_mode = True

Если вам нужно подмножество модели MRegla, определите дополнительную модель Pydantic с необходимыми полями и используйте ее.

Другие вопросы по тегам