Я хочу создать мутацию, которая удаляет запись по идентификатору, но также возвращает значение записи в 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)
Как мне исправить эту ошибку и вернуть актера?