Skip to content

Commit 26c3d42

Browse files
committed
Fixed ordering of rendered data
1 parent ce63f54 commit 26c3d42

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

rest_framework_json_api/renderers.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,21 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
7474
fields = data.serializer.fields
7575
json_api_data = utils.build_root(fields, data, resource_name)
7676

77-
render_data = {
78-
'data': json_api_data
79-
}
80-
81-
if data.get('meta'):
82-
render_data['meta'] = data.get('meta')
77+
# Make sure we render data in a specific order
78+
render_data = OrderedDict()
8379

8480
if data.get('links'):
8581
render_data['links'] = data.get('links')
8682

83+
render_data['data'] = json_api_data
84+
8785
if len(json_api_included) > 0:
86+
# Sort the items by type then by id
8887
render_data['included'] = sorted(json_api_included, key=lambda item: (item['type'], item['id']))
8988

89+
if data.get('meta'):
90+
render_data['meta'] = data.get('meta')
91+
9092
return super(JSONRenderer, self).render(
9193
render_data, accepted_media_type, renderer_context
9294
)

0 commit comments

Comments
 (0)