From e6bb75fc35ea5146cba9016b54c7ab617b1a8993 Mon Sep 17 00:00:00 2001 From: Nick Meyer Date: Sat, 1 Aug 2015 21:49:09 -0500 Subject: [PATCH 1/3] Override media_type in renderers.JSONRenderer as required by JSON API 1.0 spec --- rest_framework_json_api/renderers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rest_framework_json_api/renderers.py b/rest_framework_json_api/renderers.py index 4ffb2fdd..323ddd8a 100644 --- a/rest_framework_json_api/renderers.py +++ b/rest_framework_json_api/renderers.py @@ -29,6 +29,8 @@ class JSONRenderer(renderers.JSONRenderer): } """ + media_type = 'application/vnd.api+json' + def render(self, data, accepted_media_type=None, renderer_context=None): # Get the resource name. resource_name = utils.get_resource_name(renderer_context) From 54cce053e2f1a43b32bdf15383aa6346d1ab847e Mon Sep 17 00:00:00 2001 From: Nick Meyer Date: Sat, 1 Aug 2015 21:50:09 -0500 Subject: [PATCH 2/3] Update utils.get_related_resource_type to check for relation.source before falling back to parent_serializer --- rest_framework_json_api/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rest_framework_json_api/utils.py b/rest_framework_json_api/utils.py index 9f399a4f..ff54080b 100644 --- a/rest_framework_json_api/utils.py +++ b/rest_framework_json_api/utils.py @@ -151,7 +151,8 @@ def get_related_resource_type(relation): parent_model = parent_serializer.parent.Meta.model parent_model_relation = getattr( parent_model, - (relation.field_name if relation.field_name else parent_serializer.field_name) + (relation.field_name if relation.field_name else + (relation.source if relation.source else parent_serializer.field_name)) ) if hasattr(parent_model_relation, 'related'): relation_model = parent_model_relation.related.model From 05eac28ad0d56d772c5104b9ea01365cd39c69dc Mon Sep 17 00:00:00 2001 From: Nick Meyer Date: Mon, 3 Aug 2015 17:34:48 -0500 Subject: [PATCH 3/3] utils.get_related_resource_type: remove check for relation.field_name --- rest_framework_json_api/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rest_framework_json_api/utils.py b/rest_framework_json_api/utils.py index ff54080b..ce3f058f 100644 --- a/rest_framework_json_api/utils.py +++ b/rest_framework_json_api/utils.py @@ -151,8 +151,7 @@ def get_related_resource_type(relation): parent_model = parent_serializer.parent.Meta.model parent_model_relation = getattr( parent_model, - (relation.field_name if relation.field_name else - (relation.source if relation.source else parent_serializer.field_name)) + (relation.source if relation.source else parent_serializer.field_name) ) if hasattr(parent_model_relation, 'related'): relation_model = parent_model_relation.related.model