diff --git a/extras_mongoengine/fields.py b/extras_mongoengine/fields.py index 5871ddf..67c2f7a 100644 --- a/extras_mongoengine/fields.py +++ b/extras_mongoengine/fields.py @@ -75,7 +75,8 @@ class EnumField(object): def __init__(self, enum, *args, **kwargs): self.enum = enum - kwargs['choices'] = [choice for choice in enum] + if 'choices' not in kwargs: + kwargs['choices'] = [(c.value, c.name) for c in enum] super(EnumField, self).__init__(*args, **kwargs) def __get_value(self, enum): @@ -96,7 +97,7 @@ def validate(self, value): def _validate(self, value, **kwargs): return super(EnumField, self)._validate( - self.enum(self.__get_value(value)), **kwargs) + self.__get_value(value), **kwargs) class IntEnumField(EnumField, IntField):