1234567891011121314151617181920212223242526272829303132333435363738394041 |
- """
- utils.py # Shared helper functions
- See schemas.__init__.py for package overview.
- """
- from django.db import models
- from django.utils.translation import gettext_lazy as _
- from rest_framework.mixins import RetrieveModelMixin
- def is_list_view(path, method, view):
- """
- Return True if the given path/method appears to represent a list view.
- """
- if hasattr(view, 'action'):
- # Viewsets have an explicitly defined action, which we can inspect.
- return view.action == 'list'
- if method.lower() != 'get':
- return False
- if isinstance(view, RetrieveModelMixin):
- return False
- path_components = path.strip('/').split('/')
- if path_components and '{' in path_components[-1]:
- return False
- return True
- def get_pk_description(model, model_field):
- if isinstance(model_field, models.AutoField):
- value_type = _('unique integer value')
- elif isinstance(model_field, models.UUIDField):
- value_type = _('UUID string')
- else:
- value_type = _('unique value')
- return _('A {value_type} identifying this {name}.').format(
- value_type=value_type,
- name=model._meta.verbose_name,
- )
|