diff options
| author | Tom Christie | 2015-01-23 15:24:06 +0000 | 
|---|---|---|
| committer | Tom Christie | 2015-01-23 15:24:06 +0000 | 
| commit | e8db1834d3a3f6ba05276b64e5681288aa8f9820 (patch) | |
| tree | 59f91c126148a0759d2f155f63531b7c2c154d42 /rest_framework/fields.py | |
| parent | 4201c9fb01beae84fc34a5b74e138e721de42de1 (diff) | |
| download | django-rest-framework-e8db1834d3a3f6ba05276b64e5681288aa8f9820.tar.bz2 | |
Added UUIDField.
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/rest_framework/fields.py b/rest_framework/fields.py index cc9410aa..5e3f7ce4 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -23,6 +23,7 @@ import datetime  import decimal  import inspect  import re +import uuid  class empty: @@ -632,6 +633,23 @@ class URLField(CharField):          self.validators.append(validator) +class UUIDField(Field): +    default_error_messages = { +        'invalid': _('"{value}" is not a valid UUID.'), +    } + +    def to_internal_value(self, data): +        if not isinstance(data, uuid.UUID): +            try: +                return uuid.UUID(data) +            except (ValueError, TypeError): +                self.fail('invalid', value=data) +        return data + +    def to_representation(self, value): +        return str(value) + +  # Number types...  class IntegerField(Field): | 
