Skip to content

Bug with Django ChoiceField #87

Closed
Closed
@valdergallo

Description

@valdergallo

Hi, hi
I got one bug using models.CharField with choices.
Graphene is creating two differents objects as Enum.
Raising one error in graphene.types.typemap

File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 64, in reducer
    return self.graphene_reducer(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 82, in graphene_reducer
    return self.construct_objecttype(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 153, in construct_objecttype
    map[type._meta.name]._fields = self.construct_fields_for_type(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 214, in construct_fields_for_type
    map = self.reducer(map, field.type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 64, in reducer
    return self.graphene_reducer(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 82, in graphene_reducer
    return self.construct_objecttype(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 153, in construct_objecttype
    map[type._meta.name]._fields = self.construct_fields_for_type(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 214, in construct_fields_for_type
    map = self.reducer(map, field.type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 64, in reducer
    return self.graphene_reducer(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 69, in graphene_reducer
    return self.reducer(map, type.of_type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 64, in reducer
    return self.graphene_reducer(map, type)
  File "/usr/local/lib/python2.7/dist-packages/graphene-1.1.3-py2.7.egg/graphene/types/typemap.py", line 79, in graphene_reducer
    assert _type.graphene_type == type
AssertionError
********************************************************************************
_type.graphene_type  UserMobile1Os 139869850885568
type UserMobile1Os 139869850674512
********************************************************************************

My model

MOBILE_PLATFORMS_CHOICES = (
    ('android', 'Android'),
    ('ios', 'iOS'),
)


class User(AbstractUser):
    full_name = models.CharField(max_length=64, blank=True)
    mobile_1_os = models.CharField(max_length=10, default='android',
                                   choices=MOBILE_PLATFORMS_CHOICES,
                                   db_index=True)

My query

class Query(graphene.AbstractType):
    users = DjangoConnectionField(
        UserNode
    )

My UserNode

class UserNode(DjangoObjectType):
    class Meta(object):
        interfaces = (relay.Node,)
        model = User

And I have one file for Schemas

class AllQuery(Query, ObjectType):

   viewer = graphene.Field(lambda: AllQuery)

    @classmethod
    def resolve_viewer(cls, *args, **kwargs):
        return AllQuery()

schema_graphene = graphene.Schema(query=AllQuery)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions