Coverage for utilities/object_types.py: 25%

14 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from .string import title 

2 

3__all__ = ( 

4 'object_type_identifier', 

5 'object_type_name', 

6) 

7 

8 

9def object_type_identifier(object_type): 

10 """ 

11 Return a "raw" ObjectType identifier string suitable for bulk import/export (e.g. "dcim.site"). 

12 """ 

13 return f'{object_type.app_label}.{object_type.model}' 

14 

15 

16def object_type_name(object_type, include_app=True): 

17 """ 

18 Return a human-friendly ObjectType name (e.g. "DCIM > Site"). 

19 """ 

20 try: 

21 meta = object_type.model_class()._meta 

22 app_label = title(meta.app_config.verbose_name) 

23 model_name = title(meta.verbose_name) 

24 if include_app: 

25 return f'{app_label} > {model_name}' 

26 return model_name 

27 except AttributeError: 

28 # Model does not exist 

29 return f'{object_type.app_label} > {object_type.model}'