aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
authorJosé Padilla2015-02-06 01:09:19 -0400
committerJosé Padilla2015-02-06 01:09:19 -0400
commit7f801b9a01fa7df3b081ddec803bd0d34cc3b35b (patch)
treeb51d0381fecc50c4cd088a4cc4bdd5f61806c6e2 /rest_framework/fields.py
parent09488ad4da321f5f15d6e3df348869b8f2116b4a (diff)
downloaddjango-rest-framework-7f801b9a01fa7df3b081ddec803bd0d34cc3b35b.tar.bz2
Add trim_whitespace to CharField #2517
If set to `True` then leading and trailing whitespace is trimmed. Defaults to `True`.
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index 02d2adef..ecf0dc47 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -555,6 +555,7 @@ class CharField(Field):
def __init__(self, **kwargs):
self.allow_blank = kwargs.pop('allow_blank', False)
+ self.trim_whitespace = kwargs.pop('trim_whitespace', True)
max_length = kwargs.pop('max_length', None)
min_length = kwargs.pop('min_length', None)
super(CharField, self).__init__(**kwargs)
@@ -576,10 +577,20 @@ class CharField(Field):
return super(CharField, self).run_validation(data)
def to_internal_value(self, data):
- return six.text_type(data)
+ value = six.text_type(data)
+
+ if self.trim_whitespace:
+ return value.strip()
+
+ return value
def to_representation(self, value):
- return six.text_type(value)
+ representation = six.text_type(value)
+
+ if self.trim_whitespace:
+ return representation.strip()
+
+ return representation
class EmailField(CharField):