【发布时间】:2020-08-11 14:15:49
【问题描述】:
我正在编写一个石墨烯/django ORM 查询,我需要在我的所有查询结果对象上聚合特定字段的值并将其与查询一起返回。不太确定如何做到这一点,因为这涉及一些后期处理。如果有人可以提供一些指导,将不胜感激。
这里有一些示例代码。 Django 模型类“市场”有一个整数字段“num_vendors”。石墨烯包装器是包装在“市场”模型类周围的“市场节点”:
模型类:
class Market(models.Model):
num_vendors = models.IntegerField(....)
石墨烯类:
class MarketNode(DjangoObjectType):
Meta:
model: Market
我希望查询返回“market_count”(有多个市场)和“vendor_count”(所有市场中所有“供应商”的总和)。所以查询看起来像:
allMarkets {
market_count
vendor_count
edges {
node {
...
...
num_vendors
...
}
}
}
对于market_count,我遵循这个例子(这很好用): https://github.com/graphql-python/graphene-django/wiki/Adding-counts-to-DjangoFilterConnectionField
对于 vendor_count(跨所有市场),我假设我需要在查询完成并解决后迭代结果并添加所有 num_vendors 字段。我怎样才能做到这一点?这一定是一个相当普遍的用例,所以我确信石墨烯提供了一些钩子来做到这一点。
【问题讨论】:
标签: python django graphql graphene-django