【发布时间】:2021-07-21 16:53:36
【问题描述】:
sqlalchemy 模型
class AssetAssignment(base_model.BaseModel, Base):
__tablename__ = "asset_assignment"
id = Column(Integer,ForeignKey('page_asset.asset_assignment_id'), primary_key=True, index=True, name="id")
asset_type_id = Column(Integer,nullable=False,name="asset_type_id")
asset_id = Column(Integer,ForeignKey('asset.id'), nullable=False,name="asset_id")
status = Column(Integer, nullable=False, name="status", default=1)
public=Column(Integer, nullable=True, name="public",default=1)
class Page(Base):
__tablename__ = "page"
id = Column(Integer, primary_key=True, index=True, name="id")
page_id = Column(Integer,nullable=False,name="page_id")
asset_assignment_id = Column(Integer, nullable=False,name="asset_assignment_id")
asset_assignment=relationship("AssetAssignment",lazy='joined',uselist=True)
尝试通过graphql访问以上内容:
class Asset(SQLAlchemyObjectType):
class Meta:
model = Page
interfaces = (relay.Node, )
class Query(graphene.ObjectType):
all_assets= graphene.List(Asset)
def resolve_all_assets(self,info):
query = Asset.get_query(info) # SQLAlchemy query
return query.all()
结果没有“asset_assignment”字段,它是一个关系列。
Graphql 查询
{
allAssets{
asset_assignment
}
}
结果
{
"data": null,
"errors": [
{
"message": "Cannot query field \"asset_assignment\" on type \"Asset\". Did you mean \"assetAssignmentId\"?",
"locations": [
{
"line": 39,
"column": 4
}
]
}
]
}
【问题讨论】:
标签: python sqlalchemy fastapi graphene-python