正在访问 Graphene/Graphql 中的数据库 ID

Accessing database ID in Graphene/Graphql

我有以下查询过滤具有显示 ID 的商店(使用 sqlalchemy):

{
  shop(id: "mydevappstore") {
    id
  }
}

产生以下结果。我希望 ID 与上面相同:

{
  "data": {
    "shop": {
      "id": "U2hvcDpteWRldmFwcHN0b3Jl"
    }
  }
}

我不明白为什么会发生这种情况(也在石墨烯教程中)以及如何解决它。

sqlalchemy_and_graphene.py 是

Base = declarative_base()

class ShopModel(Base):
    __tablename__ = 'shop'
    id = Column(String(128), primary_key=True)

class Shop(SQLAlchemyObjectType):
    class Meta:
        model = ShopModel
        interfaces = (relay.Node, )

您需要在 source 参数的帮助下明确指定 id 字段

<b>import graphene</b>
from graphene_sqlalchemy import SQLAlchemyObjectType


class Shop(SQLAlchemyObjectType):
    <b>any_name = graphene.String(source='id')</b>

    class Meta:
        model = ShopModel
        interfaces = (relay.Node,)