aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Christie2013-09-02 01:13:51 -0700
committerTom Christie2013-09-02 01:13:51 -0700
commitd4f5fe99ba5f199dfea03de9f64438d4785a3582 (patch)
treeb64721f66a8ff47fae4ec385f4295fd1b5b16ee7
parentec689c1ed25a4ac09fc7dcc532187915662bc7ed (diff)
parent745ebeca77e6bcbec4eb94fb98206d6913e3d049 (diff)
downloaddjango-rest-framework-d4f5fe99ba5f199dfea03de9f64438d4785a3582.tar.bz2
Merge pull request #1078 from yprez/fix_1072
Fix empty serializer bug
-rw-r--r--rest_framework/relations.py2
-rw-r--r--rest_framework/tests/test_relations_pk.py9
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):