diff options
| author | Andrew Hankinson | 2012-12-30 14:03:08 -0400 |
|---|---|---|
| committer | Andrew Hankinson | 2012-12-30 14:03:08 -0400 |
| commit | c6f212238c238561749574a54aec3b1b1fd8df61 (patch) | |
| tree | 6c235aa1f61cdbcd834bccaa2c31c4c1bb32de0e /rest_framework/fields.py | |
| parent | df1880185c87733a82a41392898e67fe02c769aa (diff) | |
| parent | 33580c82b3487bdf00cbbaef409a4dd41e6750d5 (diff) | |
| download | django-rest-framework-c6f212238c238561749574a54aec3b1b1fd8df61.tar.bz2 | |
Merge branch 'master' of git://github.com/tomchristie/django-rest-framework into patch-support
Diffstat (limited to 'rest_framework/fields.py')
| -rw-r--r-- | rest_framework/fields.py | 10 |
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 |
