diff options
| author | José Padilla | 2015-02-06 01:09:19 -0400 | 
|---|---|---|
| committer | José Padilla | 2015-02-06 01:09:19 -0400 | 
| commit | 7f801b9a01fa7df3b081ddec803bd0d34cc3b35b (patch) | |
| tree | b51d0381fecc50c4cd088a4cc4bdd5f61806c6e2 /rest_framework | |
| parent | 09488ad4da321f5f15d6e3df348869b8f2116b4a (diff) | |
| download | django-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')
| -rw-r--r-- | rest_framework/fields.py | 15 | 
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): | 
