aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/fields.py')
-rw-r--r--rest_framework/fields.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index d3ef8f77..dd90c3f8 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -351,7 +351,12 @@ class RelatedField(WritableField):
if self.read_only:
return
- value = data.get(field_name)
+ try:
+ value = data[field_name]
+ except KeyError:
+ if self.required:
+ raise ValidationError(self.error_messages['required'])
+ return
if value in (None, '') and not self.null:
raise ValidationError('Value may not be null')
@@ -384,6 +389,7 @@ class ManyRelatedMixin(object):
else:
if value == ['']:
value = []
+
into[field_name] = [self.from_native(item) for item in value]
@@ -795,7 +801,7 @@ class ChoiceField(WritableField):
if value == smart_unicode(k2):
return True
else:
- if value == smart_unicode(k):
+ if value == smart_unicode(k) or value == k:
return True
return False