aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/relations.py
diff options
context:
space:
mode:
authorTom Christie2013-08-23 14:39:52 +0100
committerTom Christie2013-08-23 14:39:52 +0100
commitb72a99fef2c84428240425ed42b1a0b1198631b1 (patch)
treea8b248eebeac63972a75a4cb190c473355549929 /rest_framework/relations.py
parent0966a2680ba02e6a4586bd2777ed593fcc66a453 (diff)
parente03854ba6a74428675c40d469a7768cc5131035f (diff)
downloaddjango-rest-framework-b72a99fef2c84428240425ed42b1a0b1198631b1.tar.bz2
Merge branch 'display-nested-data' into html-form-renderer
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: