diff options
| author | Tom Christie | 2013-09-02 01:13:51 -0700 |
|---|---|---|
| committer | Tom Christie | 2013-09-02 01:13:51 -0700 |
| commit | d4f5fe99ba5f199dfea03de9f64438d4785a3582 (patch) | |
| tree | b64721f66a8ff47fae4ec385f4295fd1b5b16ee7 | |
| parent | ec689c1ed25a4ac09fc7dcc532187915662bc7ed (diff) | |
| parent | 745ebeca77e6bcbec4eb94fb98206d6913e3d049 (diff) | |
| download | django-rest-framework-d4f5fe99ba5f199dfea03de9f64438d4785a3582.tar.bz2 | |
Merge pull request #1078 from yprez/fix_1072
Fix empty serializer bug
| -rw-r--r-- | rest_framework/relations.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/test_relations_pk.py | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 3ad16ee5..35c00bf1 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -264,7 +264,7 @@ class PrimaryKeyRelatedField(RelatedField): # RelatedObject (reverse relationship) try: pk = getattr(obj, self.source or field_name).pk - except ObjectDoesNotExist: + except (ObjectDoesNotExist, AttributeError): return None # Forward relationship diff --git a/rest_framework/tests/test_relations_pk.py b/rest_framework/tests/test_relations_pk.py index e2a1b815..3815afdd 100644 --- a/rest_framework/tests/test_relations_pk.py +++ b/rest_framework/tests/test_relations_pk.py @@ -283,6 +283,15 @@ class PKForeignKeyTests(TestCase): self.assertFalse(serializer.is_valid()) self.assertEqual(serializer.errors, {'target': ['This field is required.']}) + def test_foreign_key_with_empty(self): + """ + Regression test for #1072 + + https://github.com/tomchristie/django-rest-framework/issues/1072 + """ + serializer = NullableForeignKeySourceSerializer() + self.assertEqual(serializer.data['target'], None) + class PKNullableForeignKeyTests(TestCase): def setUp(self): |
