aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorMarko Tibold2012-11-16 22:43:16 +0100
committerMarko Tibold2012-11-16 22:43:16 +0100
commit1a436dd6d9f56b62de61c55c89084d60c09966ba (patch)
tree84de35b55b668c05ba1e6ad5897f9498169817d9 /rest_framework/fields.py
parentf385b72d80b7e9767a6f345496fd108ccc66a4bc (diff)
downloaddjango-rest-framework-1a436dd6d9f56b62de61c55c89084d60c09966ba.tar.bz2
Added URLField and SlugField.
Fixed test_modelserializer_max_length_exceeded
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py17
1 files changed, 17 insertions, 0 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