object_types.py 828 B

1234567891011121314151617181920212223242526272829
  1. from .string import title
  2. __all__ = (
  3. 'object_type_identifier',
  4. 'object_type_name',
  5. )
  6. def object_type_identifier(object_type):
  7. """
  8. Return a "raw" ObjectType identifier string suitable for bulk import/export (e.g. "dcim.site").
  9. """
  10. return f'{object_type.app_label}.{object_type.model}'
  11. def object_type_name(object_type, include_app=True):
  12. """
  13. Return a human-friendly ObjectType name (e.g. "DCIM > Site").
  14. """
  15. try:
  16. meta = object_type.model_class()._meta
  17. app_label = title(meta.app_config.verbose_name)
  18. model_name = title(meta.verbose_name)
  19. if include_app:
  20. return f'{app_label} > {model_name}'
  21. return model_name
  22. except AttributeError:
  23. # Model does not exist
  24. return f'{object_type.app_label} > {object_type.model}'