I am trying to get flask-marshmallow to give me a list of translated entries from a Table called Type that is associated to a table called Language. I cannot figure out how to nest the responses in a list. I gave an example of my current output JSON along with my goal JSON.
class TypeSchema(ma.SQLAlchemySchema):
class Meta:
model = Type
ordered = True
language = ma.String(attribute="language.language", dump_only=True)
translated_languages = ma.List(ma.String(attribute="language"))
class Language(Updateable, db.Model):
__tablename__ = 'language'
id = sqla.Column(sqla.Integer, primary_key=True)
language = sqla.Column(sqla.String(2), nullable=False)
type_id = sqla.Column(sqla.Integer, sqla.ForeignKey('type.id'), index=True)
type = sqla_orm.relationship('Type', foreign_keys='Language.type_id', back_populates='translated_languages')
types_id = sqla.Column(sqla.Integer, sqla.ForeignKey('type.id'), index=True)
types = sqla_orm.relationship('Type', foreign_keys='Language.types_id', back_populates='language')
class Type(Updateable, db.Model):
__tablename__ = 'type'
id = sqla.Column(sqla.Integer, primary_key=True)
translated_languages = sqla_orm.relationship('Language', back_populates='type', foreign_keys='Language.type_id')
language = sqla_orm.relationship('Language', back_populates='types', uselist=False, foreign_keys='Language.types_id')
Here is the resulting JSON
{
"id": 1,
"translated_languages": [
"<api.models.Language object at 0x00000171D3730490>",
"<api.models.Language object at 0x00000171D3730400>",
"<api.models.Language object at 0x00000171D3730520>"
],
"language": "en",
}
Here is my goal JSON
{
"id": 1,
"translated_languages": [
"fr",
"es",
"de"
],
"language": "en",
}