我从用户模型创建了2个objectTypes:
class UserType(DjangoObjectType):
# ...
class Meta:
model = get_user_model()
和
class TopRankedUsersType(DjangoObjectType):
posts_count = graphene.Int()
replies_count = graphene.Int()
class Meta:
model = get_user_model()
only_fields = ['id', 'username', 'photo', 'date_joined', 'points']
一切正常,但我注意到代表用户类型的默认类型是TopRankedUsersType
而不是UserType
django / graghQl API
您可以从graphene doc:https://docs.graphene-python.org/en/latest/types/objecttypes/#changing-the-name中考虑以下内容
更改名称
默认情况下,GraphQL架构中的类型名称将与定义ObjectType的类名称相同。这可以通过在Meta类上设置name属性来更改:
class MyGraphQlSong(graphene.ObjectType):
class Meta:
name = 'Song'
我有同样的问题。这似乎与当Django启动时石墨烯加载与模式相关的所有对象的顺序有关。我意识到这是一个令人不满意的答案,但你可以通过重新排序UserType
和TopRankedUsersType
来改变默认类型,假设它们都在同一个文件中定义。