diff --git a/docs/models.rst b/docs/models.rst index 1c63c76..255826c 100644 --- a/docs/models.rst +++ b/docs/models.rst @@ -71,7 +71,6 @@ Also you can override the default uuid version. Versions 1,3,4 and 5 are now sup .. code-block:: python from model_utils.models import UUIDModel - from model_utils import Choices class MyAppModel(UUIDModel): pass diff --git a/model_utils/fields.py b/model_utils/fields.py index 952b726..701147b 100644 --- a/model_utils/fields.py +++ b/model_utils/fields.py @@ -284,23 +284,25 @@ class UUIDField(models.UUIDField): ValidationError UUID version 2 is not supported. """ - kwargs.setdefault('primary_key', primary_key) - kwargs.setdefault('editable', editable) - - if version == 4: - default = uuid.uuid4 - elif version == 1: - default = uuid.uuid1 - elif version == 2: + + if version == 2: raise ValidationError( 'UUID version 2 is not supported.') - elif version == 3: - default = uuid.uuid3 - elif version == 5: - default = uuid.uuid5 - else: + + if version < 1 or version > 5: raise ValidationError( 'UUID version is not valid.') - + + if version == 1: + default = uuid.uuid1 + elif version == 3: + default = uuid.uuid3 + elif version == 4: + default = uuid.uuid4 + elif version == 5: + default = uuid.uuid5 + + kwargs.setdefault('primary_key', primary_key) + kwargs.setdefault('editable', editable) kwargs.setdefault('default', default) super(UUIDField, self).__init__(*args, **kwargs)