определить тип объекта по умолчанию для пользовательской модели, если у вас есть несколько типов из одной модели - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю 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

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

У меня была такая же проблема. Похоже, это связано с тем, что графен загружает все объекты, связанные со схемой, при запуске Django. Я понимаю, что это неудовлетворительный ответ, но вы, вероятно, можете изменить тип по умолчанию, переупорядочив UserType и TopRankedUsersType, предполагая, что они оба определены в одном файле.

0 голосов
/ 26 апреля 2019

Вы можете рассмотреть следующее из графического документа: https://docs.graphene -python.org / ru / latest / types / objecttypes / # change-the-name

Изменение имени

По умолчанию имя типа в схеме GraphQL будет таким же, как имя класса, которое определяет ObjectType. Это можно изменить, установив свойство name в мета-классе:

class MyGraphQlSong(graphene.ObjectType):
    class Meta:
        name = 'Song'
...