@@ -52,22 +52,19 @@ def get_resource_name(context):
5252 resource_name = getattr (view , 'resource_name' )
5353 except AttributeError :
5454 try :
55- # Check the meta class
56- resource_name = ( getattr ( view , 'serializer_class' ). Meta . resource_name )
55+ serializer = getattr ( view , 'serializer_class' )
56+ return get_resource_type_from_serializer ( serializer )
5757 except AttributeError :
58- # Use the model
5958 try :
60- resource_name = ( getattr ( view , 'serializer_class' ). Meta . model .__name__ )
59+ resource_name = view . model .__name__
6160 except AttributeError :
62- try :
63- resource_name = view .model .__name__
64- except AttributeError :
65- resource_name = view .__class__ .__name__
61+ resource_name = view .__class__ .__name__
6662
67- # if the name was calculated automatically then pluralize and format
6863 if not isinstance (resource_name , six .string_types ):
64+ # The resource name is not a string - return as is
6965 return resource_name
7066
67+ # the name was calculated automatically from the view > pluralize and format
7168 resource_name = format_relation_name (resource_name )
7269
7370 return resource_name
@@ -213,6 +210,15 @@ def get_resource_type_from_manager(manager):
213210 return format_relation_name (manager .model .__name__ )
214211
215212
213+ def get_resource_type_from_serializer (serializer ):
214+ try :
215+ # Check the meta class for resource_name
216+ return serializer .Meta .resource_name
217+ except AttributeError :
218+ # Use the serializer model then then pluralize and format
219+ return format_relation_name (serializer .Meta .model .__name__ )
220+
221+
216222def extract_attributes (fields , resource ):
217223 data = OrderedDict ()
218224 for field_name , field in six .iteritems (fields ):
0 commit comments