Я ответил на свой собственный вопрос, обратившись к ошибкам в GraphQL с помощью result.errors, перебрав список и использовав функцию python print_tb для печати трассировки.
У кого-нибудь есть другой или лучший способ сделать это?
result = schema.execute(
mutation_str, context_value=self.request, variable_values=variable_values
)
if result.errors is None:
# Code what happens when there are no errors
else:
from django.conf.settings import DEBUG
if DEBUG:
def print_graphql_errors(errors):
assert errors, 'Custom Error: The "errors" parameter cannot be None.'
from traceback import print_tb
for error in errors:
traceback = error.stack
# FYI: Here are some examples of attributes and what values would look like:
# tb_frame <frame at 0x000002DDB844D548, file 'site-packages\\graphql\\execution\\executor.py', line 455, code resolve_or_error>
# tb_lasti 16
# tb_lineno 447
# tb_next <traceback object at 0x000002DDBAFBA388>
print('error.locations:', error.locations)
print('error.positions:', error.positions)
print('Manually Generated Traceback (with the print_graphql_errors function):')
print_tb(traceback)
print(repr(error))
print_graphql_errors(result.errors)
# Code what happens when DEBUG is False and there are GraphQL errors