aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rest_framework/fields.py4
-rw-r--r--rest_framework/relations.py8
2 files changed, 7 insertions, 5 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index f86f6626..b371c7d0 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -110,7 +110,6 @@ class Field(object):
default_validators = []
default_empty_html = empty
initial = None
- coerce_blank_to_null = True
def __init__(self, read_only=False, write_only=False,
required=None, default=empty, initial=empty, source=None,
@@ -248,9 +247,6 @@ class Field(object):
self.fail('required')
return self.get_default()
- if data == '' and self.coerce_blank_to_null:
- data = None
-
if data is None:
if not self.allow_null:
self.fail('null')
diff --git a/rest_framework/relations.py b/rest_framework/relations.py
index e9dd7dde..c1e5aa18 100644
--- a/rest_framework/relations.py
+++ b/rest_framework/relations.py
@@ -1,5 +1,5 @@
from rest_framework.compat import smart_text, urlparse
-from rest_framework.fields import Field
+from rest_framework.fields import empty, Field
from rest_framework.reverse import reverse
from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured
from django.core.urlresolvers import resolve, get_script_prefix, NoReverseMatch, Resolver404
@@ -31,6 +31,12 @@ class RelatedField(Field):
)
return super(RelatedField, cls).__new__(cls, *args, **kwargs)
+ def run_validation(self, data=empty):
+ # We force empty strings to None values for relational fields.
+ if data == '':
+ data = None
+ return super(RelatedField, self).run_validation(data)
+
def get_queryset(self):
queryset = self.queryset
if isinstance(queryset, QuerySet):