graphql-python / graphql-python/graphene

Bug integrating with DRF

Open
#1,291 0 comments 2 reactions 0 assignees View on GitHub
🐛 bug
Dominant language
Python
Stars
8.2k
Forks
818
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the rest-framework.html integration guide linked in the issue and reproduce the create and update mutations using the shown ProdutoSerializerMutation configuration. Trace how model_operations and the input id are handled, then verify that an update accepts the identifier without making the create flow invalid.

Written by the indexing model from the issue text.

Assessment

Tech stack
graphql, python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.