diff --git a/eav/validators.py b/eav/validators.py index ae8512f..cdc9966 100644 --- a/eav/validators.py +++ b/eav/validators.py @@ -107,8 +107,14 @@ def validate_enum(value): :class:`~eav.models.EnumValue` model instance. ''' from .models import EnumValue - if not isinstance(value, EnumValue): + if isinstance(value, str): + try: + obj_value = EnumValue.objects.get(pk=value) + except EnumValue.DoesNotExist: + obj_value = None + else: + obj_value = value + if not isinstance(obj_value, EnumValue): raise ValidationError(_(u"Must be an EnumValue model object instance")) - if not value.pk: + if not obj_value.pk: raise ValidationError(_(u"EnumValue has not been saved yet")) - return value diff --git a/setup.py b/setup.py index 1c6f98f..5f9a8b3 100755 --- a/setup.py +++ b/setup.py @@ -21,10 +21,10 @@ setup( name='django-eav', version=__import__('eav').__version__, - license = 'GNU Lesser General Public License (LGPL), Version 3', + license='GNU Lesser General Public License (LGPL), Version 3', - requires = ['python (>= 2.5)', 'django (>= 1.2)'], - provides = ['eav'], + requires=['python (>= 2.5)', 'django (>= 1.2)'], + provides=['eav'], description='Entity-attribute-value model implementation as a reusable' 'Django app.', @@ -32,9 +32,9 @@ url='http://github.com/sromero84/django-eav', - packages=['eav', 'eav.tests'], + packages=['eav', 'eav.tests', 'eav.migrations'], - classifiers = [ + classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: Web Environment', 'Framework :: Django',