Я впервые использую Flask и SQLAlchemy для создания REST API.Я пытаюсь получить JSON-представление объекта и всех связанных объектов без фактического именования таблиц (схема будет развиваться регулярно).
Давайте создадим запись с внешним ключом для Person.Кроме того, многие со многими связями с приборами:
class Record(Base, Model):
__tablename__ = 'record'
id = Column(BigInteger, primary_key=True)
id_creator = Column(ForeignKey(u'person.id', ondelete=u'SET NULL', onupdate=u'CASCADE', match=u'FULL'), nullable=False)
person = relationship(u'Person', primaryjoin='Record.id_creator == Person.id')
class Person(Base, Model):
__tablename__ = 'person'
id = Column(BigInteger, primary_key=True)
description = Column(String)
t_many_fixture_has_many_record = Table(
'many_fixture_has_many_record', metadata,
Column('id_fixture', ForeignKey(u'fixture.id', ondelete=u'RESTRICT', onupdate=u'CASCADE', match=u'FULL'), primary_key=True, nullable=False),
Column('id_record', ForeignKey(u'record.id', ondelete=u'RESTRICT', onupdate=u'CASCADE', match=u'FULL'), primary_key=True, nullable=False)
)
class Fixture(Base):
__tablename__ = 'fixture'
id = Column(BigInteger, primary_key=True)
record = relationship(u'Record', secondary=u'many_fixture_has_many_record')
Как создать вывод, который выглядит следующим образом (я гибкий):
{
"id": 1,
"person": {
"id": 12,
"description": "a description"
},
"fixture": [
{
"id": 1
},
{
"id": 2
}
]
}
Пока что яудалось получить список объектов, на которые ссылается внешний ключ list_of_dependant_objects = dependent_objects(my_record)
, но я не знаю, как подойти к остальным.
Любая помощь приветствуется.Спасибо!