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
1919
2020* Ensured that interpreting ` include ` query parameter is done in internal Python naming.
2121 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 ` .
2223
2324### Removed
2425
Original file line number Diff line number Diff line change 2626 get_resource_type_from_instance ,
2727 get_resource_type_from_model ,
2828 get_resource_type_from_serializer ,
29+ undo_format_field_name ,
2930)
3031
3132
@@ -89,7 +90,10 @@ def _readable_fields(self):
8990 sparse_fieldset_query_param
9091 )
9192 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+ ]
9397 return (
9498 field
9599 for field in readable_fields
Original file line number Diff line number Diff line change 11import pytest
22from django .db import models
3+ from rest_framework .request import Request
34from rest_framework .utils import model_meta
45
56from rest_framework_json_api import serializers
@@ -84,3 +85,22 @@ class Meta:
8485 "verified" ,
8586 "uuid" ,
8687 ]
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