【发布时间】:2022-06-27 04:02:47
【问题描述】:
我有一个关于如何使用 GraphQL 以多对一关系对结果列表进行排序的方式的问题。 让我们以graphene-sqlalchemy的例子为例。
架构是:
class Department(Base):
__tablename__ = 'department'
id = Column(Integer, primary_key=True)
name = Column(String)
class Employee(Base):
__tablename__ = 'employee'
id = Column(Integer, primary_key=True)
name = Column(String)
hired_on = Column(DateTime, default=func.now())
department_id = Column(Integer, ForeignKey('department.id'))
department = relationship(
Department,
backref=backref('employees',
uselist=True,
cascade='delete,all'))
这是我的架构:
import graphene
from models import (Employee as EmployeeModel, Department as DepartmentModel)
from graphene_sqlalchemy import (
SQLAlchemyObjectType
)
class Employee(SQLAlchemyObjectType):
class Meta:
model = EmployeeModel
class Department(SQLAlchemyObjectType):
class Meta:
model = DepartmentModek
class Query(graphene.ObjectType):
find_departments = graphene.List(of_type = Department)
def resolve_find_departments(root, info) :
return db.session.query(DepartmentModel).all()
在我的查询中,我想访问我部门的员工列表并按名称对结果进行排序。我的查询可能如下所示:
query findDepartments(){
findDepartments{
department{
employee(orderBy : 'name'){
name
}
}
}
}
但是这个查询不起作用。如何实现嵌套字段员工的排序?
【问题讨论】:
标签: sqlalchemy graphql graphene-python