diff options
| -rw-r--r-- | rest_framework/serializers.py | 6 | ||||
| -rw-r--r-- | rest_framework/tests/serializer.py | 5 | 
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()  | 
