From 9d3810f313123ce48dea48f3c3f0f2cae5816bde Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 10 Dec 2014 22:09:24 +0000 Subject: [PATCH] Drop get_iterable() --- rest_framework/relations.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 6b693e4b2..a5f975967 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -88,7 +88,7 @@ class RelatedField(Field): return False def get_attribute(self, instance): - if self.use_pk_only_optimization(): + if self.use_pk_only_optimization() and self.source_attrs: try: # Optimized case, return a mock object only containing the pk attribute. instance = get_attribute(instance, self.source_attrs[:-1]) @@ -99,10 +99,6 @@ class RelatedField(Field): # Standard case, return the object instance. return get_attribute(instance, self.source_attrs) - def get_iterable(self, instance, source_attrs): - relationship = get_attribute(instance, source_attrs) - return relationship.all() if (hasattr(relationship, 'all')) else relationship - @property def choices(self): return dict([ @@ -349,7 +345,8 @@ class ManyRelatedField(Field): ] def get_attribute(self, instance): - return self.child_relation.get_iterable(instance, self.source_attrs) + relationship = get_attribute(instance, self.source_attrs) + return relationship.all() if (hasattr(relationship, 'all')) else relationship def to_representation(self, iterable): return [