首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在graphene-django中创建自定义对象以返回分组计数

可以通过以下步骤实现:

  1. 首先,你需要在Django的模型中定义你的自定义对象。假设你有一个名为Category的模型,它有一个名为name的字段,用于存储类别名称。你可以在models.py文件中添加以下代码来定义该模型:
代码语言:txt
复制
from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name
  1. 接下来,你需要创建一个GraphQL类型来映射Category模型。你可以在schema.py文件中添加以下代码来定义该类型:
代码语言:txt
复制
import graphene
from graphene_django import DjangoObjectType
from django.db.models import Count

from .models import Category

class CategoryType(DjangoObjectType):
    class Meta:
        model = Category
        fields = ("id", "name", "count")

    count = graphene.Int()

    def resolve_count(self, info):
        return self.products.count()

class Query(graphene.ObjectType):
    categories = graphene.List(CategoryType)

    def resolve_categories(self, info):
        return Category.objects.annotate(count=Count("products"))

schema = graphene.Schema(query=Query)

在上面的代码中,我们为CategoryType添加了一个名为count的字段,并使用Count函数对products进行注释。然后,我们在Query对象中定义了一个名为categories的解析器函数来获取所有的类别。

  1. 最后,你需要在urls.py文件中将GraphQL视图与URL进行关联。你可以添加以下代码来完成这一步骤:
代码语言:txt
复制
from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
    path("graphql/", GraphQLView.as_view(graphiql=True)),
]

现在,你可以通过访问/graphql/来执行GraphQL查询,并获取带有分组计数的类别列表。以下是一个示例查询:

代码语言:txt
复制
query {
  categories {
    id
    name
    count
  }
}

以上是在graphene-django中创建自定义对象以返回分组计数的完整步骤。对于这个问题,你可以直接使用上述内容作为答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

10分30秒

053.go的error入门

26分40秒

晓兵技术杂谈2-intel_daos用户态文件系统io路径_dfuse_io全路径_io栈_c语言

3.4K
领券