From 7f801b9a01fa7df3b081ddec803bd0d34cc3b35b Mon Sep 17 00:00:00 2001 From: José Padilla Date: Fri, 6 Feb 2015 01:09:19 -0400 Subject: Add trim_whitespace to CharField #2517 If set to `True` then leading and trailing whitespace is trimmed. Defaults to `True`.--- rest_framework/fields.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'rest_framework') 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): -- cgit v1.2.3