graphql-python / graphql-python/graphene
Bug integrating with DRF
- 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