Skip to content
Prev Previous commit
Next Next commit
Fix field_name support in to_internal_value
  • Loading branch information
czosel committed Dec 13, 2016
commit b0f0ed10f0c75d42648c70406bc29dd02e5e7596
9 changes: 4 additions & 5 deletions rest_framework_json_api/relations.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def to_internal_value(self, data):
self.fail('incorrect_type', data_type=type(data).__name__)

expected_relation_type = get_resource_type_from_queryset(self.queryset)
serializer_resource_type = self.get_resource_type_from_included_serializer(expected_relation_type)
serializer_resource_type = self.get_resource_type_from_included_serializer()

if serializer_resource_type is not None:
expected_relation_type = serializer_resource_type
Expand All @@ -148,19 +148,18 @@ def to_representation(self, value):
else:
pk = value.pk

field_name = self.field_name if self.field_name else self.parent.field_name

resource_type = self.get_resource_type_from_included_serializer(field_name)
resource_type = self.get_resource_type_from_included_serializer()
if resource_type is None:
resource_type = get_resource_type_from_instance(value)

return OrderedDict([('type', resource_type), ('id', str(pk))])

def get_resource_type_from_included_serializer(self, field_name):
def get_resource_type_from_included_serializer(self):
"""
Check to see it this resource has a different resource_name when
included and return that name, or None
"""
field_name = self.field_name or self.parent.field_name
root = self.get_root_serializer()

if root is not None:
Expand Down