Solution
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
app = Flask(__name__)
db = SQLAlchemy(app)
ma = Marshmallow(app)
class Language(db.Model):
id = db.Column(db.Integer, primary_key=True)
code = db.Column(db.String(2), nullable=False)
type_id = db.Column(db.Integer, db.ForeignKey('type.id'))
type = db.relationship('Type', backref='languages')
class Type(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
class LanguageSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = Language
class TypeSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = Type
languages = ma.Nested(LanguageSchema, only=('code',), many=True)
with app.app_context():
db.drop_all()
db.create_all()
l = Language(code='en')
t = Type(
name='Grocery',
languages=[l]
)
db.session.add(t)
db.session.commit()
@app.route('/')
def index():
types = Type.query.all()
types_schema = TypeSchema(many=True)
types_data = types_schema.dump(types)
return jsonify(data=types_data)
{
"data": [
{
"id": 1,
"languages": [
{
"code": "en"
}
],
"name": "Grocery"
}
]
}