Sqlalchemy Graphene глубоко вложенные схемы
Я новичок в графене
Я пытаюсь получить информацию от 3 моделей: две модели соединяются (пользователь и классы) имеют отношения "многие ко многим", одна модель (уроки) соединяются как многие к одному с моделью классов.
Моя цель - иметь возможность отображать информацию о модели класса в виде списка внутри класса после данных пользователя. Но я мог показывать только данные между пользователями и классами. Но необходимо перечислить все данные Пользователь -> Классы -> Уроки. Как это сделать холодно?
вот как это должно выглядеть
мои модели:
table = Table('table', Base.metadata,
Column('left', Integer, ForeignKey('left.id')),
Column('right', Integer, ForeignKey('right.id'))
)
class User(Base):
__tablename__ = 'right'
id = Column(Integer, primary_key=True)
name = Column(String(255))
lessons = relationship("Class",
secondary=table,
backref="user")
class Classes(Base):
__tablename__ = 'left'
id = Column(Integer, primary_key=True)
name = Column(String(255))
lessons = relationship('User', backref='classes')
class Lessons(Base):
__tablename__ = 'lessons'
id = Column(Integer, primary_key=True)
name = Column(String(255))
class_id= Column(Integer, ForeignKey('class.id'))
Мои схемы и запросы:
class UserSchema(SQLAlchemyObjectType):
class Meta:
model = User
interfaces = (relay.Node, )
class ClassesSchema(SQLAlchemyObjectType):
class Meta:
model = Contract
interfaces = (relay.Node, )
class LessonsSchema(SQLAlchemyObjectType):
class Meta:
model = Plan
interfaces = (relay.Node,)
class Query(graphene.ObjectType):
node = relay.Node.Field()
# Allows sorting over multiple columns, by default over the primary key
all = SQLAlchemyConnectionField(UserSchema)
# Disable sorting over this field
all_classes = SQLAlchemyConnectionField(ClassesSchema)
all_lessons = SQLAlchemyConnectionField(LessonsSchema)
schema = graphene.Schema(query=Query)
мощность косилки:
{
"data": {
"all": {
"edges": [
{
"node": {
"id": "TWFpbmNoZW1hOjE=",
"name": "User 1",
"Classes": {
"edges": [
{
"node": {
"id": "Q29udHJhY3RTY2hlbWE6Mg==",
"name": "First class",
"lessons": {
"edges": []
}
}
}
]
}
}
},
Основная проблема в том, что список уроков пуст, но если я запрашиваю уроки, он показывает информацию, и она не пуста.