Django Graphene GraphQL настраиваем сообщения об ошибках

В моем приложении Django с Graphene for GraphQL, как мне перехватить сообщения Graphene GraphQL, чтобы я мог дезинфицировать содержимое? Я попробовал создать пользовательское представление graphql и функцию custom_execute и использовать это в определении конечной точки urlpatterns:

class CustomGraphQLView(GraphQLView):
    def execute_graphql_request(self, request, data, query, variables, operation_name, show_graphiql=False):
        document = parse(query)
        result = custom_execute(self.schema, document, root_value=request, variable_values=variables, operation_name=operation_name)
        return result

def custom_execute(schema, document, root_value=None, variable_values=None, operation_name=None, context_value=None):
    # Execute the query
    try:
        result = execute(
            schema=schema,
            document=document,
            root_value=root_value,
            context_value=context_value,
            variable_values=variable_values,
            operation_name=operation_name
        )
        if isinstance(result, ExecutionResult):
            if result.errors:
                modified_errors = [GraphQLError("Custom error handling message") for error in result.errors]
                result.errors = modified_errors
        return result
    except Exception as e:
        return ExecutionResult(data=None, errors=[GraphQLError('test'), GraphQLError(str(e))])

urlpatterns = [
    path('graphql', CustomGraphQLView.as_view(graphiql=not IS_PROD)),
 ]

Внутри функции execute в моей функции custom_execute я получаю ошибку: "Expected <Schema instance> to be a GraphQL schema." Я проверил, что объект схемы имеет тип <class 'graphene.types.schema.Schema'>. Как исправить эту ошибку. Является ли это вообще рекомендуемым способом настройки сообщений об ошибках, выдаваемых graphql?

Вернуться на верх