Я использую 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 и т. Д.) "
Но я думаю, что есть лучший способ.
Спасибо за внимание.