diff options
| author | Philip Douglas | 2013-09-12 16:03:20 +0100 |
|---|---|---|
| committer | Philip Douglas | 2013-09-12 16:03:20 +0100 |
| commit | 59cce01b3359aa009e697a99eabbf2ef322b28e2 (patch) | |
| tree | 92e14219bebb994a881ebf47a209c3d17add375f | |
| parent | 39e13a0d1341c0a0e694acb1522a99470c4037be (diff) | |
| download | django-rest-framework-59cce01b3359aa009e697a99eabbf2ef322b28e2.tar.bz2 | |
Fix error when serializer gets files but no data
| -rw-r--r-- | rest_framework/serializers.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/test_files.py | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index a63c7f6c..778e72d1 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -156,7 +156,7 @@ class BaseSerializer(WritableField): self.context = context or {} - self.init_data = data + self.init_data = data or {} self.init_files = files self.object = instance self.fields = self.get_fields() diff --git a/rest_framework/tests/test_files.py b/rest_framework/tests/test_files.py index c13c38b8..127e379e 100644 --- a/rest_framework/tests/test_files.py +++ b/rest_framework/tests/test_files.py @@ -80,3 +80,16 @@ class FileSerializerTests(TestCase): serializer = UploadedFileSerializer(data={'created': now, 'file': 'abc'}) self.assertFalse(serializer.is_valid()) self.assertEqual(serializer.errors, {'file': [errmsg]}) + + def test_validation_with_no_data(self): + """ + Validation should still function when no data dictionary is provided. + """ + now = datetime.datetime.now() + file = BytesIO(six.b('stuff')) + file.name = 'stuff.txt' + file.size = len(file.getvalue()) + uploaded_file = UploadedFile(file=file, created=now) + + serializer = UploadedFileSerializer(files={'file': file}) + self.assertFalse(serializer.is_valid())
\ No newline at end of file |
