7

クエリの結果として、オブジェクトの「元の ID」を取得できるかどうかを知りたいです。サーバーにリクエストを行うたびに、ノードの「グローバル識別子」が返されますU29saWNpdGFjYW9UeXBlOjEzNTkxOA==

クエリは次のようになります。

{
  allPatients(active: true) {
    edges {
      cursor
      node {
        id
        state
        name
      }
    }
  }

戻り値は次のとおりです。

{
  "data": {
      "edges": [
        {
          "cursor": "YXJyYXljb25uZWN0aW9uOjA=",
          "node": {
            "id": "U29saWNpdGFjYW9UeXBlOjEzNTkxOA==",
            "state": "ARI",
            "name": "Brad"
          }
        }
      ]
  }
}

そのノードの一意の識別子の代わりに、データベース レベルでオブジェクトの「元の」ID (たとえば、'112') を取得するにはどうすればよいですか?

ps .:サーバー側でgraphene-pythonとRelayを使用しています。

4

4 に答える 4

1

一番上の答えを拡張し、SQLAlchemy オブジェクト型を使用している人のために、これは私にとってはうまくいきました:

class CustomNode(graphene.Node):
    class Meta:
        name = 'myNode'

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

class ExampleType(SQLAlchemyObjectType):
    class Meta:
        model = Example
        interfaces = (CustomNode, )

インターフェイスとして Relay.Node を使用する他の ObjectTypes がある場合は、CustomNode. そうしないと、アサーション エラーが発生します。

于 2020-03-09T21:06:55.310 に答える