我开始用 GraphQl/Graphene 来解决我的问题。我正在构建一个连接到 MongoDB 的模式。到目前为止,一切似乎都有效,除了突变。我一直在关注这里和这里的例子,但没有运气。有人可以指出我做错了什么吗?提前致谢。
import graphene
class GeoInput(graphene.InputObjectType):
lat = graphene.Float(required=True)
lng = graphene.Float(required=True)
@property
def latlng(self):
return "({},{})".format(self.lat, self.lng)
class Address(graphene.ObjectType):
latlng = graphene.String()
class CreateAddress(graphene.Mutation):
class Arguments:
geo = GeoInput(required=True)
Output = Address
def mutate(self, info, geo):
return Address(latlng=geo.latlng)
class Mutation(graphene.ObjectType):
create_address = CreateAddress.Field()
class Query(graphene.ObjectType):
address = graphene.Field(Address, geo=GeoInput(required=True))
def resolve_address(self, info, geo):
return Address(latlng=geo.latlng)
schema = graphene.Schema(query=Query, mutation=Mutation)
上面的代码会产生这个错误:
AssertionError: CreateAddress 字段必须是一个映射(dict / OrderedDict),其中字段名称作为键或返回此类映射的函数。