1
+ import json
2
+
1
3
from rest_framework_json_api import serializers , views
2
4
from rest_framework_json_api .renderers import JSONRenderer
3
5
@@ -19,9 +21,14 @@ class DummyTestSerializer(serializers.ModelSerializer):
19
21
related_models = RelatedModelSerializer (
20
22
source = 'comments' , many = True , read_only = True )
21
23
24
+ json_field = serializers .SerializerMethodField ()
25
+
26
+ def get_json_field (self , entry ):
27
+ return {'JsonKey' : 'JsonValue' }
28
+
22
29
class Meta :
23
30
model = Entry
24
- fields = ('related_models' ,)
31
+ fields = ('related_models' , 'json_field' )
25
32
26
33
class JSONAPIMeta :
27
34
included_resources = ('related_models' ,)
@@ -61,3 +68,22 @@ def test_simple_reverse_relation_included_read_only_viewset():
61
68
ReadOnlyDummyTestViewSet )
62
69
63
70
assert rendered
71
+
72
+
73
+ def test_render_format_field_names (settings ):
74
+ """Test that json field is kept untouched."""
75
+ settings .JSON_API_FORMAT_FIELD_NAMES = 'dasherize'
76
+ rendered = render_dummy_test_serialized_view (DummyTestViewSet )
77
+
78
+ result = json .loads (rendered .decode ())
79
+ assert result ['data' ]['attributes' ]['json-field' ] == {'JsonKey' : 'JsonValue' }
80
+
81
+
82
+ def test_render_format_keys (settings ):
83
+ """Test that json field value keys are formated."""
84
+ delattr (settings , 'JSON_API_FORMAT_FILED_NAMES' )
85
+ settings .JSON_API_FORMAT_KEYS = 'dasherize'
86
+ rendered = render_dummy_test_serialized_view (DummyTestViewSet )
87
+
88
+ result = json .loads (rendered .decode ())
89
+ assert result ['data' ]['attributes' ]['json-field' ] == {'json-key' : 'JsonValue' }
0 commit comments