Я пишу графен / django ORM-запрос, в котором мне нужно объединить значения определенного поля для всех объектов результата моего запроса и вернуть его вместе с запросом. Не совсем уверен, как это сделать, так как это требует некоторой постобработки. Был бы признателен, если кто-то может предложить некоторые рекомендации.
Вот пример кода. Django Класс модели 'Market' имеет целочисленное поле 'num_vendors'. Графеновая оболочка 'MarketNode' охватывает модель класса Market:
Класс модели:
class Market(models.Model):
num_vendors = models.IntegerField(....)
Класс графена:
class MarketNode(DjangoObjectType):
Meta:
model: Market
Я бы например, запрос на возврат 'market_count' (существует несколько рынков) и 'vendor_count' (сумма всех 'vendors' на всех рынках). Таким образом, запрос будет выглядеть следующим образом:
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 после того, как запрос будет завершен и решен. Как мне этого добиться? Это должно быть довольно распространенным случаем, так что я уверен, что графен предоставляет некоторые крючки для этого.