GraphQL django с реализацией реле не может получить конкретный идентификатор

Мой узел выглядит так -

class CustomNode(graphene.relay.Node):
    """
        For fetching object id instead of Node id
    """

    class Meta:
        name = 'Node'

    @staticmethod
    def to_global_id(type, id):
        return id


class ReportFileNode(DjangoObjectType):
    database_id = graphene.Int()

    class Meta:
        model = ReportFile
        interfaces = (CustomNode,)
        filter_fields: List[str] = ['id']
        convert_choices_to_enum = False

И моя схема запроса graphql похожа на -

class Query(graphene.ObjectType):
    all_report_files = DjangoFilterConnectionField(ReportFileNode)

Но когда я спрашиваю вот так:

query {
  allReportFiles(id: "367") {
    edges {
      node {
        id
      }
    }
  }
}

Мне возвращают все записи, а не только ту, которую я запрашивал.

Также у меня есть еще одно требование: я должен иметь возможность вводить список идентификаторов и получать только эти записи. Когда я не использую настраиваемый узел, этот запрос работает -

query {
  allReportFiles(id: ["UmVwb3J0RmlsZU5vZGU6MzY1", "UmVwb3J0RmlsZU5vZGU6MzY3"]) {
    edges {
      node {
        id
      }
    }
  }
}

Но мне нужно, чтобы глобальные идентификаторы отображались и использовались.

0 ответов

Другие вопросы по тегам