aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/relations.py
diff options
context:
space:
mode:
authorTom Christie2013-08-23 14:06:14 +0100
committerTom Christie2013-08-23 14:06:14 +0100
commite03854ba6a74428675c40d469a7768cc5131035f (patch)
tree4f65e56adf3582a9801a044409022c5f90eabd00 /rest_framework/relations.py
parent315435d00ae6bcdab3a4f3a6e7128e2d1ea92b0d (diff)
downloaddjango-rest-framework-e03854ba6a74428675c40d469a7768cc5131035f.tar.bz2
Tweaks to display nested data in empty serializers
Diffstat (limited to 'rest_framework/relations.py')
-rw-r--r--rest_framework/relations.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/rest_framework/relations.py b/rest_framework/relations.py
index edaf76d6..7408758e 100644
--- a/rest_framework/relations.py
+++ b/rest_framework/relations.py
@@ -134,9 +134,9 @@ class RelatedField(WritableField):
value = obj
for component in source.split('.'):
- value = get_component(value, component)
if value is None:
break
+ value = get_component(value, component)
except ObjectDoesNotExist:
return None
@@ -567,8 +567,13 @@ class HyperlinkedIdentityField(Field):
May raise a `NoReverseMatch` if the `view_name` and `lookup_field`
attributes are not configured to correctly match the URL conf.
"""
- lookup_field = getattr(obj, self.lookup_field)
+ lookup_field = getattr(obj, self.lookup_field, None)
kwargs = {self.lookup_field: lookup_field}
+
+ # Handle unsaved object case
+ if lookup_field is None:
+ return None
+
try:
return reverse(view_name, kwargs=kwargs, request=request, format=format)
except NoReverseMatch: