Python GraphQL如何声明自引用graphene对象类型

Python GraphQL如何声明自引用graphene对象类型,python,recursion,graphql,Python,Recursion,Graphql,我有一个django模型,它有一个与其相关的外键,我想将这个模型表示为grapheneObjectType 我知道使用graphene_django库中的DjangObjectType执行此操作非常简单 我正在寻找一个不使用graphene_django的优雅python解决方案 我想表示的模型示例 #models.py 类别(models.Model): name=models.CharField(unique=True,最大长度=200) 父项=models.ForeignKey( “sel

我有一个django模型,它有一个与其相关的外键,我想将这个模型表示为graphene
ObjectType

我知道使用graphene_django库中的
DjangObjectType
执行此操作非常简单

我正在寻找一个不使用graphene_django的优雅python解决方案

我想表示的模型示例

#models.py
类别(models.Model):
name=models.CharField(unique=True,最大长度=200)
父项=models.ForeignKey(
“self”,on_delete=models.SET_NULL,NULL=True,blank=True,
相关_name='child_category')
下面的架构显然不可缩放,
ParentCategoryType
没有
parent
字段,因此严格来说它不是
CategoryType
的父级

#schema.py
类ParentCategoryType(graphene.ObjectType):
id=graphene.types.uuid.uuid()
name=graphene.String()
类CategoryType(graphene.ObjectType):
id=graphene.types.uuid.uuid()
name=graphene.String()
父项=石墨烯。字段(ParentCategoryType)
下面的代码给出了一个
CategoryType
未定义错误

#schema.py
类CategoryType(graphene.ObjectType):
id=graphene.types.uuid.uuid()
name=graphene.String()
父项=石墨烯。字段(类别类型)

非常感谢您的帮助。

在做了一些研究之后,我发现了一个跟踪这一点的工具。答案似乎是。我自己也试过,效果不错。因此,在本例中,您只需将代码更改为
parent=graphene.Field(lambda:ParentCategoryType)
parent=graphene.Field(lambda:CategoryType)