Запрос агрегированных значений со значениями базы данных с помощью gql и django
Я взялся за проект, использующий gql и django. Он полностью повторяет структуру следующего примера: https://stackabuse.com/building-a-graphql-api-with-django/
Теперь я хочу добавить дополнительную функциональность. Помимо отправки значений базы данных на фронт-енд, я хотел бы также отправлять агрегированные значения, например, количество элементов и т.д. Я добавил это в узел следующим образом:
class DatabaseDataNode(DjangoObjectType):
model = DatabaseAnnotationData
print(DatabaseAnnotationData.objects.filter(database_id__exact=5).count()) #Prints correct value
total = DatabaseAnnotationData.objects.filter(database_id__exact=5).count()
class Meta:
print('Hello world')
filterset_fields = {
'databaseid': ['exact'],
'name': ['exact', 'icontains', 'istartswith'],
'imagefile': ['exact', 'icontains', 'istartswith'],
'annotations': ['exact'],
'created_at': ['exact'],
'modified_at': ['exact'],
'slug': ['exact'],
'total': ['exact'] # <-- Doesn't work
}
interfaces = (relay.Node, )
Я также добавляю его в запрос:
const DATABASE = gql`
query Database($name: String, $first: Int, $offset: Int) {
database(databasename: $name) {
databaseid
id
name
total <---------- Added
modifiedAt
images(first: $first, offset: $offset) {
edges {
node {
imageid
imagefile
width
height
objectdataSet{
edges{
node{
x1
y1
width
height
concepts{
edges{
node{
conceptId
}
}
}
objectid
imageid{
imageid
}
}
}
}
}
}
}
}
}
`
Но когда я запускаю его, я получаю ошибку "Cannot query field "total" on type "DatabaseDataNode"
Как я могу реализовать это, чтобы отправить и другое значение?