@@ -38,8 +38,8 @@ class JSONRenderer(renderers.JSONRenderer):
3838 media_type = 'application/vnd.api+json'
3939 format = 'vnd.api+json'
4040
41- @staticmethod
42- def extract_attributes (fields , resource ):
41+ @classmethod
42+ def extract_attributes (cls , fields , resource ):
4343 data = OrderedDict ()
4444 for field_name , field in six .iteritems (fields ):
4545 # ID is always provided in the root of JSON API so remove it from attributes
@@ -67,8 +67,8 @@ def extract_attributes(fields, resource):
6767
6868 return utils .format_keys (data )
6969
70- @staticmethod
71- def extract_relationships (fields , resource , resource_instance ):
70+ @classmethod
71+ def extract_relationships (cls , fields , resource , resource_instance ):
7272 # Avoid circular deps
7373 from rest_framework_json_api .relations import ResourceRelatedField
7474
@@ -242,8 +242,8 @@ def extract_relationships(fields, resource, resource_instance):
242242
243243 return utils .format_keys (data )
244244
245- @staticmethod
246- def extract_included (fields , resource , resource_instance , included_resources ):
245+ @classmethod
246+ def extract_included (cls , fields , resource , resource_instance , included_resources ):
247247 # this function may be called with an empty record (example: Browsable Interface)
248248 if not resource_instance :
249249 return
@@ -322,12 +322,12 @@ def extract_included(fields, resource, resource_instance, included_resources):
322322 utils .get_resource_type_from_instance (nested_resource_instance )
323323 )
324324 included_data .append (
325- JSONRenderer .build_json_resource_obj (
325+ cls .build_json_resource_obj (
326326 serializer_fields , serializer_resource , nested_resource_instance , resource_type
327327 )
328328 )
329329 included_data .extend (
330- JSONRenderer .extract_included (
330+ cls .extract_included (
331331 serializer_fields , serializer_resource , nested_resource_instance , new_included_resources
332332 )
333333 )
@@ -340,20 +340,20 @@ def extract_included(fields, resource, resource_instance, included_resources):
340340 serializer_fields = utils .get_serializer_fields (field )
341341 if serializer_data :
342342 included_data .append (
343- JSONRenderer .build_json_resource_obj (
343+ cls .build_json_resource_obj (
344344 serializer_fields , serializer_data ,
345345 relation_instance , relation_type )
346346 )
347347 included_data .extend (
348- JSONRenderer .extract_included (
348+ cls .extract_included (
349349 serializer_fields , serializer_data , relation_instance , new_included_resources
350350 )
351351 )
352352
353353 return utils .format_keys (included_data )
354354
355- @staticmethod
356- def extract_meta (serializer , resource ):
355+ @classmethod
356+ def extract_meta (cls , serializer , resource ):
357357 if hasattr (serializer , 'child' ):
358358 meta = getattr (serializer .child , 'Meta' , None )
359359 else :
@@ -366,8 +366,8 @@ def extract_meta(serializer, resource):
366366 })
367367 return data
368368
369- @staticmethod
370- def extract_root_meta (serializer , resource ):
369+ @classmethod
370+ def extract_root_meta (cls , serializer , resource ):
371371 many = False
372372 if hasattr (serializer , 'child' ):
373373 many = True
@@ -380,14 +380,14 @@ def extract_root_meta(serializer, resource):
380380 data .update (json_api_meta )
381381 return data
382382
383- @staticmethod
384- def build_json_resource_obj (fields , resource , resource_instance , resource_name ):
383+ @classmethod
384+ def build_json_resource_obj (cls , fields , resource , resource_instance , resource_name ):
385385 resource_data = [
386386 ('type' , resource_name ),
387387 ('id' , encoding .force_text (resource_instance .pk ) if resource_instance else None ),
388- ('attributes' , JSONRenderer .extract_attributes (fields , resource )),
388+ ('attributes' , cls .extract_attributes (fields , resource )),
389389 ]
390- relationships = JSONRenderer .extract_relationships (fields , resource , resource_instance )
390+ relationships = cls .extract_relationships (fields , resource , resource_instance )
391391 if relationships :
392392 resource_data .append (('relationships' , relationships ))
393393 # Add 'self' link if field is present and valid
0 commit comments