Я очень запутался и пытаюсь добавить детей в существующий родительский объект в базе данных.При попытке сделать это я получаю сообщение об ошибке.
Я не уверен, как обеспечить сохранение моего недавно добавленного дочернего объекта?Ошибка и мои попытки приведены ниже:
equityLinkedNote = db.session.query(EquityLinkedNote).filter(EquityLinkedNote.cmdb == cmdb_eln.cmdb)
underlier_list = underliers.to_dict(orient="records")
equityLinkedNote.Underlier =\
[UnderlierDetails(
Ticker=underlier["Ticker"] if "Ticker" in underlier else None,
Weight=underlier["Weight"] if "Weight" in underlier else None,
ReturnFloor=underlier["ReturnFloor"] if "ReturnFloor" in underlier else None,
InitialFixing=underlier["InitialFixing"] if "InitialFixing" in underlier else None,
ReturnCap=underlier["ReturnCap"] if "ReturnCap" in underlier else None,
EffectiveDate=underlier["EffectiveDate"] if "EffectiveDate" in underlier else cmdb_eln.trade_date
) for underlier in underlier_list]
db.session.flush()
db.session.commit()
ОШИБКА
File "....\lib\site-packages\sqlalchemy\ext\declarative\base.py", line 747, in _declarative_constructor
setattr(self, k, kwargs[k])
File "...\site-packages\sqlalchemy\orm\attributes.py", line 229, in __set__
instance_dict(instance), value, None)
File "...\site-packages\sqlalchemy\orm\attributes.py", line 711, in set
state._modified_event(dict_, self, old)
AttributeError: 'NoneType' object has no attribute '_modified_event'
Я понятия не имею, почему это не удается.любая помощь будет оценена!
Вот мои модели
class EquityLinkedNote(GenericSecMasterObject):
Underlier = db.relationship("UnderlierDetails", backref='note', cascade="save-update, merge, delete", lazy='dynamic',
collection_class=list)
Underlier
class UnderlierDetails(db.Model):
__tablename__ = "underlier_details"
id = db.Column(db.Integer, primary_key=True)
Ticker = db.Column(db.String(50), nullable=False)
InitialFixing = db.Column(db.Float, nullable=True)
ReturnCap = db.Column(db.Float, nullable=True)
ReturnFloor = db.Column(db.Float, nullable=True)
Weight = db.Column(db.Float, nullable=True)
EffectiveDate = db.Column(db.DateTime, nullable=False)
cmdb = db.Column(db.String(20), db.ForeignKey('sec_master_details.cmdb'), nullable=False)