[英]How to return custom child object that does not have a SQLAlchemy type
我有Foo
和Bar
類型的對象,每個Bar
object 都有一個字段類別(由名稱字符串指定)和一個將其鏈接到Foo
類型的 object 的父 ID ...我希望有一個 GQL 模式,可以查詢為如下:
{
foo {
category {
name
bar {
}
}
}
Foo 和 Bar 都存在於數據庫中,可以很容易地生成為 SQLAlchemy 個對象。 但是我不太確定如何編寫一個給定 Foo object 的解析器以這種方式返回它的所有類別,以及如何編寫一個給定類別的解析器返回該類別中屬於 foo 的子對象的所有對象.
所以你在這里需要的是一個自定義的CategoryType
。
class CategoryType(graphene.ObjectType):
name = graphene.String()
bars = graphene.List(BarType)
然后在你的FooType
class FooType(SQLAlchemyObjectType):
class Meta:
model = Foo
categories = graphene.List(CategoryType)
def resolve_categories(self, info):
organized = {}
for bar in self.bars:
if (bar.category in organized):
organized[bar.category].append(bar)
else:
organized[bar.category] = [bar]
return [{ "name": name, "bars": bars } for name, bars in organized.items()]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.