mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-30 23:47:53 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| 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,
 | |
|     )
 |