gpt4 book ai didi

sqlalchemy - 您如何编写一个返回 SQLAlchemy 作为中继连接的解析器?

转载 作者:行者123 更新时间:2023-12-05 07:34:18 27 4
gpt4 key购买 nike

我想为查询返回一个中继连接。使用标准的 graphene-sqlalchemy 你可以这样做:

class Query(graphene.ObjectType):
node = relay.Node.Field()

all_users = SQLAlchemyConnectionField(User)

对于需要更多自定义搜索的各种地方,最简单的方法是自定义解析器:

class Query(graphene.ObjectType):
node = relay.Node.Field()


all_users = graphene.List(User)
def resolve_all_users(self, info, **args):
# Grab the root SQLAlchemy query
query = User.get_query(info)
return query.filter(
User.active,
# and possibly a whole bunch of other filters)
).options(joinedload(User.emails).all()

这可行,但它返回一个简单的用户列表,不支持分页或 SQLAlchemyConnectionField 处理的其他中继连接技巧。我正在寻找的是一种返回查询的方法,并以与 SQLAlchemyConnectionField 类似的方式自动处理它。

最佳答案

我有一个想法。

def search_users(cls, info, **kwargs):
user_query = UserQLSchema.get_query(info)
target = kwargs.get('target')
if target:
target_like = "%{}%".format(target)
user_query = orga_query.filter(UserModel.name.like(target_like))
return user_query.all()

class RootQuery(graphene.ObjectType):
find_users = graphene.relay.ConnectionField(OrganizationFullConnection, target=graphene.String(), resolver=search_users)

同时,会引发另一个问题,导致每次网络请求都要查询数据库两次。

关于sqlalchemy - 您如何编写一个返回 SQLAlchemy 作为中继连接的解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50208761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com