У меня есть три модели Declarative_base.
class Region(BaseModel):
id = BaseModel.column(type='integer', primary_key=True)
# ...
y1 = BaseModel.column(type='float')
y2 = BaseModel.column(type='float')
x1 = BaseModel.column(type='float')
x2 = BaseModel.column(type='float')
map_id = BaseModel.column(type='mediumint')
units = relationship('Unit', primaryjoin="and_((Region.id == Unit.region_id), (Unit.unit_template_id))")
players = relationship('Player', lazy='subquery')
class Unit(BaseModel):
# ...
region_id = Object.column(type='integer',
foreign_key=db_name + '.region.id',
nullable=True)
region = relationship('Region', lazy='subquery')
class Player(Unit):
# ...
unit = relationship('Unit', lazy='subquery')
Как видите, Player
наследует Unit
.Region
содержит список юнитов и список игроков.Когда я меняю любое поле игрока, унаследованное от юнита, отношение региона players
не обновляется.Что мне следует сделать после изменения поля Player
, чтобы обновить отношение Region players
к получению фактических данных?
PS Если это возможно, я хочу избежать дополнительного сохранения в БД, потому что сначала мне нужно выполнить некоторые действия(например, вычисления и т. д.).