当您具有来自同一模型的多个类型时,确定用户模型的默认对象类型

问题描述 投票:0回答:2

我从用户模型创建了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

django python-3.x graphene-python
2个回答
0
投票

您可以从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'

0
投票

我有同样的问题。这似乎与当Django启动时石墨烯加载与模式相关的所有对象的顺序有关。我意识到这是一个令人不满意的答案,但你可以通过重新排序UserTypeTopRankedUsersType来改变默认类型,假设它们都在同一个文件中定义。

© www.soinside.com 2019 - 2024. All rights reserved.