Удалить запись, а также вернуть ее значение в graphene_django - PullRequest
0 голосов
/ 23 июня 2019

Я хочу создать мутацию, которая удаляет запись по идентификатору, но также возвращает значение записи в graphene_django следующим образом:

mutation {
  deleteActor(id: 5) {
    ok
    actor {
      id
      name
    }
  }
}

Моя мутация в настоящее время корректно удаляет запись, но возвращает ошибку

{
  "errors": [
    {
      "message": "Cannot return null for non-nullable field ActorType.id.",
      "locations": [
        {
          "line": 1,
          "column": 45
        }
      ],
      "path": [
        "deleteActor",
        "actor",
        "id"
      ]
    }
  ],
  "data": {
    "deleteActor": {
      "ok": true,
      "actor": null
    }
  }
}

Я не знаю, почему это так, поскольку в соответствии с документацией графена метод .delete () удаляет только элемент из базы данных и не касается экземпляра python.Вот мой код мутации

class DeleteActor(graphene.Mutation):
    class Arguments:
        id = graphene.Int(required=True)

    ok = graphene.Boolean()
    actor = graphene.Field(ActorType)

    @staticmethod
    def mutate(root, info, id):
        ok = False
        actor_instance = Actor.objects.get(pk=id)
        if actor_instance:
            ok = True
            actor_instance.delete()
            return DeleteActor(ok=ok, actor=actor_instance)
        else:
            return DeleteActor(ok=False, actor=None)

Как мне исправить эту ошибку и вернуть актера?

...