def get_view_name(self, respect_name=True): """ Get or generate human readable view name. Extended version from DRF to support usage from both class and instance. """ if isinstance(self, type): view = self else: view = self.__class__ # Name may be set by some Views, such as a ViewSet. if respect_name: name = getattr(view, "name", None) if name is not None: return name name = view.__name__ for suffix in ("ViewSet", "View", "API", "Admin"): name = formatting.remove_trailing_string(name, suffix) name = formatting.camelcase_to_spaces(name) # Suffix may be set by some Views, such as a ViewSet. suffix = getattr(view, "suffix", None) if suffix: name += " " + suffix return name
def get_view_name(cls, suffix=None): name = cls.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) if suffix: name += ' ' + suffix return name
def get_view_name(self): name = self.__class__.__name__ name = formatting.remove_trailing_string(name, "View") name = formatting.remove_trailing_string(name, "ViewSet") name = formatting.camelcase_to_spaces(name) suffix = getattr(self, "suffix", None) # Hack for page title display in BrowsableAPIRenderer. if suffix and suffix != "List": return suffix return name
def get_view_name(view_cls, suffix=None): """ Given a view class, return a textual name to represent the view. This name is used in the browsable API, and in OPTIONS responses. This function is the default for the `VIEW_NAME_FUNCTION` setting. """ name = view_cls.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) if suffix: name += ' ' + suffix return name
def rest_framework_view_name(cls, suffix=None): # Do exactly what the default function does import rest_framework.utils.formatting as formatting name = cls.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) if suffix: name = ' '.join((name, suffix)) # Make names more readable name = name.replace("Xbgw Device ", "XBee Gateway - Radio ") name = name.replace("Io", "I/O") name = name.replace("X Bee", "XBee") name = name.replace("Api", "API") return name
def get_view_name(view_cls, suffix=None): """ Derive the view name from its associated model, if it has one. Fall back to DRF's built-in `get_view_name`. """ if hasattr(view_cls, 'queryset'): # Determine the model name from the queryset. name = view_cls.queryset.model._meta.verbose_name name = ' '.join([w[0].upper() + w[1:] for w in name.split()]) # Capitalize each word else: # Replicate DRF's built-in behavior. name = view_cls.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) if suffix: name += ' ' + suffix return name
def get_entity_description(entity): """ Returns description in format: * entity human readable name * docstring """ try: entity_name = entity.__name__.strip('_') except AttributeError: # entity is a class instance entity_name = entity.__class__.__name__ label = '* %s' % formatting.camelcase_to_spaces(entity_name) if entity.__doc__ is not None: entity_docstring = formatting.dedent(smart_text( entity.__doc__)).replace('\n', '\n\t') return '%s\n * %s' % (label, entity_docstring) return label
def get_view_name(view): """ Given a view instance, return a textual name to represent the view. This name is used in the browsable API, and in OPTIONS responses. This function replaces the Rest Framework default. """ name = getattr(view, "name", None) if name is not None: return name name = view.__class__.__name__ name = formatting.remove_trailing_string(name, "View") name = formatting.remove_trailing_string(name, "ViewSet") name = formatting.camelcase_to_spaces(name) # Use title for datasets instead of the generic 'Schema' if name == "Schema": name = getattr(view.schema_generator, "title", "Schema") # Use the title for instances response = getattr(view, "response", None) suffix = getattr(view, "suffix", None) # viewsets have this set to List or Instance if suffix == "Instance" and response: if response.status_code == 200: try: name = response.data["_links"]["self"]["title"] except KeyError: # When the _links field is not rendered, this might happen because _fields # is used to limit what the response returns. At the same time, this gives # an opportunity to directly read the first response field as title. if "_fields" in view.request.GET: first_field = view.request.GET["_fields"].split(",", 1)[0] name = response.data[first_field] else: name = f"{response.reason_phrase} ({response.status_code})" return name
def get_view_name(view): """ Given a view instance, return a textual name to represent the view. This name is used in the browsable API, and in OPTIONS responses. This function is the default for the `VIEW_NAME_FUNCTION` setting. """ # Name may be set by some Views, such as a ViewSet. name = getattr(view, 'name', None) if name is not None: return name name = view.__class__.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) # Suffix may be set by some Views, such as a ViewSet. suffix = getattr(view, 'suffix', None) if suffix: name += ' ' + suffix return name
def get_view_name(view): """ Given a view class, return a textual name to represent the view. This name is used in the browsable API, and in OPTIONS responses. This function is the default for the `VIEW_NAME_FUNCTION` setting. """ # Name may be set by some Views, such as a ViewSet. name = getattr(view, 'name', None) if name is not None: return name name = view.__class__.__name__ name = formatting.remove_trailing_string(name, 'View') name = formatting.remove_trailing_string(name, 'ViewSet') name = formatting.camelcase_to_spaces(name) # Suffix may be set by some Views, such as a ViewSet. suffix = getattr(view, 'suffix', None) if suffix: name += ' ' + suffix return name