Flask-SQLAlchemy und Flask-Restless holen keine Enkelkinder
Problem
Ich baue eine App auf Flask, Flask-SQLAlchemy und Flask-Restless. Ich habe Restless verwendet, um eine API für eine Eltern-Kind-Enkel-Beziehung zu generieren *. Ein GET für mein Kind holt das Enkelkind korrekt, aber ein GET für das Elternteil holt das Enkelkind nicht für jedes Kind.
* In der Tat ist die Eltern-Kind-Beziehung eine viele-zu-viele, aber die gleiche Voraussetzung.
Modelleclass Grandchild(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
parent = db.relationship('Child', backref='grandchild')
parent_child = db.Table('parent_child',
db.Column('parent_id', db.Integer, db.ForeignKey('parent.id')),
db.Column('child_id', db.Integer, db.ForeignKey('child.id')),
db.Column('number', db.SmallInteger)
)
class Child(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
grandchild_id = db.Column(db.Integer, db.ForeignKey('grandchild.id'), nullable=False)
class Parent(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
children = db.relationship('Child', secondary=parent_child)
api.create_api(Child, exclude_columns=['grandchild_id'])
api.create_api(Parent)
GET: / api / child Antwort{
"num_results": 1,
"objects": [
{
"id": 1,
"name": "test"
"grandchild": {
"id": 1,
"name": "test"
}
}
],
"page": 1,
"total_pages": 1
}
GET: / api / parent antwort{
"num_results": 1,
"objects": [
{
"children": [
{
"id": 1,
"name": "test",
"grandchild_id": 1
}
],
"id": 1,
"name": "test"
}],
"page": 1,
"total_pages": 1
}