Я очень новичок в Graphene и проверяю, могу ли я использовать его для проекта Django со сложными запросами.Чтобы проверить это, я пытаюсь создать Ecommerce со следующими моделями
class Sku(models.Model):
name = models.CharField(max_length=100)
class Product(models.Model):
name = models.CharField(max_length=100)
class ProductSku(models.Model):
sku = models.ForeignKey(Sku, related_name='product_sku', on_delete=models.CASCADE)
product = models.ForeignKey(Product, related_name='product_sku', on_delete=models.CASCADE)
price = models.IntegerField()
. Как вы можете видеть здесь, Product и Sku имеют отношение многие ко многим, используя модель ProductSku
Использованиедокументацию от Graphene я создал следующую схему
class SkuNode(DjangoObjectType):
class Meta:
model = Sku
class ProductNode(DjangoObjectType):
class Meta:
model = Product
class ProductSkuNode(DjangoObjectType):
class Meta:
model = ProductSku
class Query(graphene.ObjectType):
all_products = graphene.List(ProductNode, name=graphene.String())
product = graphene.Field(ProductNode, id=graphene.Int())
def resolve_all_products(self, info, **args):
name = args.get('name')
if name is not None:
return Product.objects.filter(name__icontains=name)
return Product.objects.all()
def resolve_product(self, info, **args):
id = args.get('id')
if id is not None:
return Product.objects.filter(pk=id).first()
. Прямо сейчас мое приложение веб-интерфейса может получить цену определенного продукта для данного sku, выполнив запрос, запрашивающий
query{
allProducts{
id,
name,
productSku{
price,
sku{
id,
name
}
}
}
}
* 1011.* Но я хочу сделать запрос, запрашивающий цену внутри SkuNode
query{
allProducts{
id,
name,
sku{
id,
name,
price
}
}
}
Это возможно?