graphene
graphene copied to clipboard
Bug integrating with DRF
I followed the steps in https://graphene-django-murali.readthedocs.io/en/latest/rest-framework.html
class Produto(models.Model):
nome = models.CharField(max_length=50, unique=True)
tamanho = models.IntegerField(null=True, blank=True)
preco = models.DecimalField(max_digits=8, decimal_places=2)
quantidade = models.IntegerField()
def __str__(self):
return self.nome
class Meta:
verbose_name = "Produto"
verbose_name_plural = "Produtos"
class ProdutoType(DjangoObjectType):
class Meta:
model = Produto
class ProdutoSerializer(serializers.ModelSerializer):
class Meta:
model = Produto
fields = ("id", "nome", "tamanho", "preco", "quantidade")
class QueryDefinition(graphene.ObjectType):
all_produtos = graphene.List(ProdutoType)
def resolve_all_produtos(self, info, **kwargs):
return Produto.objects.all()
class ProdutoSerializerMutation(SerializerMutation):
class Meta:
serializer_class = ProdutoSerializer
class Mutations(graphene.ObjectType):
create_or_update_produto = ProdutoSerializerMutation.Field()
schema = graphene.Schema(mutation=Mutations, query=QueryDefinition)
The project runs but when i'm testing i can create and list objects normally but in update it not accept id value
mutation {
createOrUpdateProduto(input:{id: 6, nome: "a", tamanho: 1, preco: 0, quantidade:0}){
id
nome
}
}
{
"errors": [
{
"message": "Argument \"input\" has invalid value {id: 6, nome: \"a\", tamanho: 1, preco: 0, quantidade: 0}.\nIn field \"id\": Unknown field.",
"locations": [
{
"line": 2,
"column": 31
}
]
}
]
}
If i put only update in model_operations inside ProdutoSerializerMutation it complains that id is unknown field but if i take if out it complains that it should have an id
My versions: Django==3.1.4 djangorestframework==3.12.2 graphene==2.1.8 graphene-django==2.13.0 graphql-core==2.3.2