Skip to content

Commit 54f1dcd

Browse files
tpilarascottfisk
authored andcommitted
Fix return stale data on PATCH to-one relationship (#247)
1 parent d3eac6d commit 54f1dcd

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

example/tests/test_views.py

+2
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def test_patch_to_one_relationship(self):
101101
}
102102
response = self.client.patch(url, data=json.dumps(request_data), content_type='application/vnd.api+json')
103103
assert response.status_code == 200, response.content.decode()
104+
assert response.data == request_data['data']
104105

105106
response = self.client.get(url)
106107
assert response.data == request_data['data']
@@ -112,6 +113,7 @@ def test_patch_to_many_relationship(self):
112113
}
113114
response = self.client.patch(url, data=json.dumps(request_data), content_type='application/vnd.api+json')
114115
assert response.status_code == 200, response.content.decode()
116+
assert response.data == request_data['data']
115117

116118
response = self.client.get(url)
117119
assert response.data == request_data['data']

rest_framework_json_api/views.py

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ def patch(self, request, *args, **kwargs):
9999
serializer.is_valid(raise_exception=True)
100100
setattr(parent_obj, self.get_related_field_name(), serializer.validated_data)
101101
parent_obj.save()
102+
related_instance_or_manager = self.get_related_instance() # Refresh instance
102103
result_serializer = self._instantiate_serializer(related_instance_or_manager)
103104
return Response(result_serializer.data)
104105

0 commit comments

Comments
 (0)