django_forest/resources/utils/resource.py
import logging
from django.http import JsonResponse
from django_forest.utils.views.base import BaseView
logger = logging.getLogger(__name__)
class ResourceView(BaseView):
def dispatch(self, request, resource, *args, **kwargs):
try:
self.Model = self.get_model(resource)
except Exception as e:
logger.exception(e)
return self.error_response(e)
else:
return super().dispatch(request, *args, **kwargs)
def get_count(self, queryset, params, request):
try:
# enhance queryset (compute scope)
queryset = self.enhance_queryset(queryset, self.Model, params, request)
except Exception as e:
logger.exception(e)
return self.error_response(e)
else:
return JsonResponse({'count': queryset.count()}, safe=False)