diff --git a/graphene_django/converter.py b/graphene_django/converter.py index 9fcc3c5b3..4ae1e4e3a 100644 --- a/graphene_django/converter.py +++ b/graphene_django/converter.py @@ -7,6 +7,7 @@ from graphene.types.datetime import DateTime from graphene.types.json import JSONString from graphene.utils.str_converters import to_const +from graphql import assert_valid_name from .compat import (ArrayField, HStoreField, JSONField, RangeField, RelatedObject, UUIDField) @@ -17,7 +18,12 @@ def convert_choice_name(name): - return to_const(force_text(name)) + name = to_const(force_text(name)) + try: + assert_valid_name(name) + except AssertionError: + name = "A_%s" % name + return name def get_choices(choices): @@ -26,7 +32,7 @@ def get_choices(choices): for choice in get_choices(help_text): yield choice else: - name = convert_choice_name(help_text) + name = convert_choice_name(value) description = help_text yield name, value, description