graphql-python / graphql-python/graphene
Bug integrating with DRF
- 主要语言
- 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
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 issue 中链接的集成指南 rest-framework.html 开始,使用其中展示的 ProdutoSerializerMutation 配置复现 create 和 update mutation。跟踪 model_operations 和 input id 的处理方式,然后验证 update 接受标识符时不会使 create 流程失效。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- graphql, python
- 领域
- api, backend
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100