              return PKOnlyObject(pk=instance.serializable_value(self.source))
          except AttributeError:
              return get_attribute(instance, [self.source])
  
      def get_iterable(self, instance, source):
          # For consistency with `get_attribute` we're using `serializable_value()`
          # here. Typically there won't be any difference, but some custom field
          # types might return a non-primative value for the pk otherwise.
          #
          # We could try to get smart with `values_list('pk', flat=True)`, which
 
</s> remove             return get_attribute(instance, [self.source])
 </s> add             return get_attribute(instance, self.source_attrs) </s> remove         relationship = super(PrimaryKeyRelatedField, self).get_iterable(instance, source)
 </s> add         relationship = super(PrimaryKeyRelatedField, self).get_iterable(instance, source_attrs) </s> remove             return PKOnlyObject(pk=instance.serializable_value(self.source))
 </s> add             instance = get_attribute(instance, self.source_attrs[:-1])
            return PKOnlyObject(pk=instance.serializable_value(self.source_attrs[-1])) </s> remove     def get_iterable(self, instance, source):
        relationship = get_attribute(instance, [source])
 </s> add     def get_iterable(self, instance, source_attrs):
        relationship = get_attribute(instance, source_attrs) </s> remove         return self.child_relation.get_iterable(instance, self.source)
 </s> add         return self.child_relation.get_iterable(instance, self.source_attrs)
    def get_iterable(self, instance, source_attrs):
              return PKOnlyObject(pk=instance.serializable_value(self.source))
          except AttributeError:
              return get_attribute(instance, [self.source])
  
    def get_iterable(self, instance, source_attrs):
          # For consistency with `get_attribute` we're using `serializable_value()`
          # here. Typically there won't be any difference, but some custom field
          # types might return a non-primative value for the pk otherwise.
          #
          # We could try to get smart with `values_list('pk', flat=True)`, which
keep keep keep keep replace keep keep keep keep keep
 Support dotted source on relational fields 
rest_framework/relations.py