Skip to content

Commit e6f3721

Browse files
committed
added a get_resource_type_from_model
I had to drop the try/catches as they were causing an issue of a bubbling exception
1 parent 73bc6d5 commit e6f3721

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

rest_framework_json_api/utils.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -205,25 +205,30 @@ def get_instance_or_manager_resource_type(resource_instance_or_manager):
205205
pass
206206

207207

208+
def get_resource_type_from_model(model):
209+
# need to convert the verbose name which uses spaces to underscores
210+
# to be propely parsed in format_relation_name
211+
underscored_model_name = model._meta.verbose_name.replace(" ", "_")
212+
return format_relation_name(underscored_model_name)
213+
214+
208215
def get_resource_type_from_queryset(qs):
209-
return format_relation_name(qs.model._meta.model.__name__)
216+
return get_resource_type_from_model(qs.model)
210217

211218

212219
def get_resource_type_from_instance(instance):
213-
return format_relation_name(instance._meta.model.__name__)
220+
return get_resource_type_from_model(instance._meta.model)
214221

215222

216223
def get_resource_type_from_manager(manager):
217-
return format_relation_name(manager.model.__name__)
224+
return get_resource_type_from_model(manager.model)
218225

219226

220227
def get_resource_type_from_serializer(serializer):
221-
try:
222-
# Check the meta class for resource_name
223-
return serializer.Meta.resource_name
224-
except AttributeError:
225-
# Use the serializer model then pluralize and format
226-
return format_relation_name(serializer.Meta.model.__name__)
228+
return getattr(
229+
serializer.Meta,
230+
'resource_name',
231+
get_resource_type_from_model(serializer.Meta.model))
227232

228233

229234
def extract_attributes(fields, resource):

0 commit comments

Comments
 (0)