File tree Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ any parts of the framework not mentioned in the documentation should generally b
19
19
20
20
* Ensured that interpreting ` include ` query parameter is done in internal Python naming.
21
21
This adds full support for using multipart field names for includes while configuring ` JSON_API_FORMAT_FIELD_NAMES ` .
22
+ * Ensured that sparse fieldset fully supports ` JSON_API_FORMAT_FIELD_NAMES ` .
22
23
23
24
### Removed
24
25
Original file line number Diff line number Diff line change 26
26
get_resource_type_from_instance ,
27
27
get_resource_type_from_model ,
28
28
get_resource_type_from_serializer ,
29
+ undo_format_field_name ,
29
30
)
30
31
31
32
@@ -89,7 +90,10 @@ def _readable_fields(self):
89
90
sparse_fieldset_query_param
90
91
)
91
92
if sparse_fieldset_value is not None :
92
- sparse_fields = sparse_fieldset_value .split ("," )
93
+ sparse_fields = [
94
+ undo_format_field_name (sparse_field )
95
+ for sparse_field in sparse_fieldset_value .split ("," )
96
+ ]
93
97
return (
94
98
field
95
99
for field in readable_fields
Original file line number Diff line number Diff line change 1
1
import pytest
2
2
from django .db import models
3
+ from rest_framework .request import Request
3
4
from rest_framework .utils import model_meta
4
5
5
6
from rest_framework_json_api import serializers
@@ -84,3 +85,22 @@ class Meta:
84
85
"verified" ,
85
86
"uuid" ,
86
87
]
88
+
89
+
90
+ def test_readable_fields_with_sparse_fields (client , rf , settings ):
91
+ class TestSerializer (serializers .Serializer ):
92
+ name = serializers .CharField ()
93
+ value = serializers .CharField ()
94
+ multi_part_name = serializers .CharField ()
95
+
96
+ class Meta :
97
+ resource_name = "test"
98
+
99
+ settings .JSON_API_FORMAT_FIELD_NAMES = "camelize"
100
+ request = Request (rf .get ("/test/" , {"fields[test]" : "value,multiPartName" }))
101
+ context = {"request" : request }
102
+ serializer = TestSerializer (context = context )
103
+ assert [field .field_name for field in serializer ._readable_fields ] == [
104
+ "value" ,
105
+ "multi_part_name" ,
106
+ ]
You can’t perform that action at this time.
0 commit comments