diff options
| author | Marko Tibold | 2012-11-16 22:43:16 +0100 |
|---|---|---|
| committer | Marko Tibold | 2012-11-16 22:43:16 +0100 |
| commit | 1a436dd6d9f56b62de61c55c89084d60c09966ba (patch) | |
| tree | 84de35b55b668c05ba1e6ad5897f9498169817d9 | |
| parent | f385b72d80b7e9767a6f345496fd108ccc66a4bc (diff) | |
| download | django-rest-framework-1a436dd6d9f56b62de61c55c89084d60c09966ba.tar.bz2 | |
Added URLField and SlugField.
Fixed test_modelserializer_max_length_exceeded
| -rw-r--r-- | rest_framework/fields.py | 17 | ||||
| -rw-r--r-- | rest_framework/serializers.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 2 |
3 files changed, 20 insertions, 1 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 6ef53975..641a1417 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -700,6 +700,23 @@ class CharField(WritableField): return smart_unicode(value) +class URLField(CharField): + type_name = 'URLField' + + def __init__(self, **kwargs): + kwargs['max_length'] = kwargs.get('max_length', 200) + kwargs['validators'] = [validators.URLValidator()] + super(URLField, self).__init__(**kwargs) + + +class SlugField(CharField): + type_name = 'SlugField' + + def __init__(self, *args, **kwargs): + kwargs['max_length'] = kwargs.get('max_length', 50) + super(SlugField, self).__init__(*args, **kwargs) + + class ChoiceField(WritableField): type_name = 'ChoiceField' widget = widgets.Select diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 8f4b7ae2..dbd9fe27 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -441,6 +441,8 @@ class ModelSerializer(Serializer): models.DateField: DateField, models.EmailField: EmailField, models.CharField: CharField, + models.URLField: URLField, + models.SlugField: SlugField, models.TextField: CharField, models.CommaSeparatedIntegerField: CharField, models.BooleanField: BooleanField, diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py index a51df146..fb1be7eb 100644 --- a/rest_framework/tests/serializer.py +++ b/rest_framework/tests/serializer.py @@ -245,7 +245,7 @@ class ValidationTests(TestCase): } serializer = ActionItemSerializer(data=data) self.assertEquals(serializer.is_valid(), False) - self.assertEquals(serializer.errors, {'content': [u'Ensure this value has at most 200 characters (it has 201).']}) + self.assertEquals(serializer.errors, {'title': [u'Ensure this value has at most 200 characters (it has 201).']}) class MetadataTests(TestCase): |
