Отображение нескольких таблиц базы данных в один объект в SQLAlchemy - PullRequest
0 голосов
/ 22 марта 2019

Я использую SQLAlchemy и MySQL для создания ORM.Я автоматизировал таблицы базы данных следующим образом:

Base = automap_base()
Base.prepare(engine, reflect=True)
tScenario = Base.classes.table_scenario
tSchedule = Base.classes.table_schedule
tScheduleRestriction = Base.classes.table_schedule_restriction

Сценарии имеют расписания, которые имеют ограничения.Затем в какой-то момент я создаю этот объект:

schedule = (session
   .query(tSchedule)
   .join(tScheduleRestriction)
   .filter(and_(
      tSchedule.scenario_id==47, 
      tSchedule.period=='saturday')
      )
   .all()
)

Я могу получить доступ ко всем столбцам table_schedule и установить их как обычно:

schedule[1].parameter01 = 19

Но еслиЯ хочу получить доступ к столбцу из объединенной таблицы ( table_schedule_restriction ), он похоронен в этой вещи:

schedule[1].table_schedule_restriction_collection[0].parameter01_min = 20

Мой вопрос: как мне получить все столбцы изобе таблицы как прямые свойства моего объекта расписания ?

Я знаю, что один из способов - объявить все столбцы из обеих таблиц внутри .query, как этот псевдокод:

". query( tSchedule.parameter01, tScheduleRestriction.parameter01_min и т. Д.) "

Но я думаю, что есть лучший способ.

Спасибо за внимание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...