graphene icon indicating copy to clipboard operation
graphene copied to clipboard

Bug integrating with DRF

Open PauloMesquita opened this issue 5 years ago • 0 comments

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

PauloMesquita avatar Dec 03 '20 00:12 PauloMesquita