В настоящее время у меня есть 2 модели, которые связаны соотношением 1: 1, которое всегда будет отображаться вместе. Модели связаны через общий ПК. Я создал две модели, которые отображаются на их таблицы, используя flask -sqlalchemy. Ниже я сделаю упрощенную версию:
class Author(db.Model):
key = db.Column(db.Text)
name = db.Column(db.Text)
class Book(db.Model):
key = db.Column(db.Text)
title = db.Column(db.Text)
Затем я могу сделать сериализацию, используя flask -marshmallow:
class AuthorScheme(ma.SQLAlchemyAutoScheme):
class Meta:
model = models.Author
class BookScheme(ma.SQLAlchemyAutoScheme):
class Meta:
model = models.Book
Это хорошо для отдельных схем, и я вас знаю Можно использовать вложение, но это не тот формат, который я пытаюсь создать. Если я поместил автора в книгу, она выдаст результат, подобный:
{
key: value,
title: value,
author: {
key: value,
name: value
}
}
Я видел другие решения, использующие внешние ключи модели, которые дают результаты, аналогичные приведенным выше. Тем не менее, я пытаюсь заставить его сериализоваться так:
{
key: value,
title: value,
author: value,
}
Где две модели знают, что они объединяются в «ключ» и объединяются в одну. Будет ли это сделано в реальных моделях? Или в схеме? Я потерян. Я также признаю, что вы можете сделать это вручную и установить поле, но я хотел бы найти лучший подход, так как я буду делать все конечные точки и предпочел бы не выполнять итерации на всех моделях. Есть идеи?