I have 2 tables in SQL:
class Zoo(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(80), unique=True, nullable=False)
idade = db.Column(db.Integer, unique=False, nullable=False)
peso = db.Column(db.Float, unique=False, nullable=False)
cuidador = db.Column(db.Integer, db.ForeignKey('cuidador.id'))
class Cuidador(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(80), unique=True, nullable=False)
animais = db.relationship('Zoo', backref='zoo', lazy=True)
And the Schemas defined:
class WorkerSchema(ma.SQLAlchemySchema):
class Meta:
model = Cuidador
id = ma.auto_field()
nome = ma.auto_field()
class ZooSchema(ma.SQLAlchemySchema):
class Meta:
model = Zoo
id = ma.auto_field()
nome = ma.auto_field()
idade = ma.auto_field()
peso = ma.auto_field()
cuidador = ma.Nested(WorkerSchema)
In a visualization route, I defined the following function to visualize the data present in the Zoo table:
def see_all_animals(self):
result_join = db.session.query(Zoo,Cuidador).join(Zoo).all()
zoo_schema = ZooSchema()
result = zoo_schema.dump(result_join,many=True)
return result
Unfortunately the function returns completely empty data. I would like something to appear along these lines:
{
...."id": 3,
...."idade": 5,
...."nome": "Cabra",
...."peso": 12.0,
...."cuidador": {"id":1,"nome":"Juan"}
}