Django Graphene объединение 3 таблиц

Я программирую сайт с помощью Django и использую Graphene для реализации GraphQL. У меня есть три таблицы, которые содержат различные типы продуктов. Я хотел бы иметь запрос, который при поиске пользователем названия продукта возвращает все продукты из всех трех таблиц

Я читал, что Graphene union делает это, но я не могу заставить функциональность работать.

class Cards(DjangoObjectType):
    class Meta:
        model = magic_sets_cards
        fields = ['name']


class Tokens(DjangoObjectType):
    class Meta:
        model = magic_sets_tokens
        fields = ['name']


class Sealed(DjangoObjectType):
    class Meta:
        model = magic_sets_sealed_products
        fields = ['name']


class MagicSearchTestUnion(graphene.Union):
    class Meta:
        types = (Cards, Tokens, Sealed)

    @classmethod
    def resolve_type(cls, instance, info):
        if isinstance(instance, magic_sets_cards):
            return Cards
        if isinstance(instance, magic_sets_tokens):
            return Tokens
        if isinstance(instance, magic_sets_sealed_products):
            return Sealed
        return MagicSearchTestUnion.resolve_type(instance, info)


class MagicSearchTestQuery(graphene.ObjectType):
    magic_search_cards = graphene.List(MagicSearchTestUnion)

    @staticmethod
    def resolve_magic_search_cards(self, info, search=''):
        cards = magic_sets_cards.objects.filter(name__icontains=search).all()
        tokens = magic_sets_tokens.objects.filter(name__icontains=search).all()
        sealed = magic_sets_sealed_products.objects.filter(name__icontains=search).all()
        return list(chain(cards, tokens, sealed))


magicSearchTestSchema = graphene.Schema(query=MagicSearchTestQuery)

Это работает нормально, без ошибок, и я могу получить доступ к графическому интерфейсу GraphQL GUI, но в запросе нет ожидаемых полей.

{
  magicSearchCards {
    __typename
  }
}

Выше перечислены все поля, которые, похоже, доступны мне.

Вернуться на верх