Запрос агрегированных значений со значениями базы данных с помощью 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"

Как я могу реализовать это, чтобы отправить и другое значение?

Вернуться на верх