graphql-python / graphql-python/graphene

Bug integrating with DRF

オープン
#1,291 コメント 0 件 リアクション 2 件 担当者 0 名 GitHub で見る
🐛 bug
主要言語
Python
スター
8.2k
フォーク
818
PR マージ指標
30日以内にマージされた PR はありません

説明

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
graphql, python
領域
api, backend
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。