我正在使用Django Graphene为我的Web应用程序构建API。我构建了这个简单的结构,其中Product
属于category
:
from graphene_django import DjangoObjectType
import graphene
from .models import ProductModel, CategoryModel
class CategoryType(DjangoObjectType):
class Meta:
model = CategoryModel
class ProductType(DjangoObjectType):
category = graphene.Field(CategoryType)
class Meta:
model = ProductModel
class CategoryInput(graphene.InputObjectType):
title = graphene.String()
class ProductInput(graphene.InputObjectType):
title = graphene.String()
category = graphene.Field(CategoryInput)
class Query(graphene.ObjectType):
products = graphene.List(ProductType)
categories = graphene.List(CategoryType)
def resolve_products(self, info):
return ProductModel.objects.all()
def resolve_categories(self, info):
return CategoryModel.objects.all()
class CreateProduct(graphene.Mutation):
class Arguments:
product_data = ProductInput(required=True)
product = graphene.Field(ProductType)
@staticmethod
def mutate(self, info, product_data):
product = ProductModel.objects.create(**product_data)
product.save()
return CreateProduct(product=product)
class CreateCategory(graphene.Mutation):
class Arguments:
title = graphene.String()
category = graphene.Field(CategoryType)
def mutate(self, info, title):
category = CategoryModel(title=title)
category.save()
return CreateCategory(category=category)
class Mutations(graphene.ObjectType):
create_product = CreateProduct.Field()
create_category = CreateCategory.Field()
schema = graphene.Schema(query=Query, mutation=Mutations)
但当我尝试变异时,我需要传递CategoryModel的一个实例,我不知道该怎么做:
mutation X {
createProduct(productData: {title: "title", category: {}}) {
product {
id
}
}
}
如何创建需要标题和类别的产品
我昨天也有过类似的问题,但似乎我对石墨烯的理解还没有更好。但我写了一些有趣的代码,这些代码很管用,尽管可能有一种更石墨烯的方法来解决它
要在你的graphiql中进行变异
相关问题 更多 >
编程相关推荐