GraphQL django с реализацией реле, не способной получить определенный идентификатор - PullRequest
0 голосов
/ 02 мая 2020

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

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
      }
    }
  }
}

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

...