aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2012-12-11 00:55:12 -0800
committerTom Christie2012-12-11 00:55:12 -0800
commite20b0bc45b82e2be1f74fc98315b1d5843cb6347 (patch)
tree794c55ca1406b3cef65e20a18399cbbc26707898
parentff01ae3571298b9da67f9b9583f0cb264676ed2b (diff)
parentd0935d1fbb87711b0ffda8655c44ede29ee4208a (diff)
downloaddjango-rest-framework-e20b0bc45b82e2be1f74fc98315b1d5843cb6347.tar.bz2
Merge pull request #491 from markotibold/#490
get_excluded_fieldnames() should respect Meta options' ability to be eit...
-rw-r--r--rest_framework/serializers.py6
-rw-r--r--rest_framework/tests/serializer.py5
2 files changed, 7 insertions, 4 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 7eab9860..c3f260c7 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -132,9 +132,9 @@ class BaseSerializer(Field):
Returns the fieldnames that should not be validated.
"""
excluded_fields = list(self.opts.exclude)
- for field in self.fields.keys() + self.get_default_fields().keys():
- if self.opts.fields:
- if field not in self.opts.fields + self.opts.exclude:
+ if self.opts.fields:
+ for field in self.fields.keys() + self.get_default_fields().keys():
+ if field not in list(self.opts.fields) + excluded_fields:
excluded_fields.append(field)
return excluded_fields
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index 455fa270..a16f6abd 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -66,6 +66,7 @@ class AlbumsSerializer(serializers.ModelSerializer):
class Meta:
model = Album
+ fields = ['title'] # lists are also valid options
class BasicTests(TestCase):
@@ -282,9 +283,11 @@ class ValidationTests(TestCase):
self.assertEquals(serializer.is_valid(), False)
self.assertEquals(serializer.errors, {'info': [u'Ensure this value has at most 12 characters (it has 13).']})
+
+class ModelValidationTests(TestCase):
def test_validate_unique(self):
"""
- Just check if serializers.ModelSerializer.perform_model_validation() handles unique checks via .full_clean()
+ Just check if serializers.ModelSerializer handles unique checks via .full_clean()
"""
serializer = AlbumsSerializer(data={'title': 'a'})
serializer.is_valid()