fix: base CustomRetrieveModelMixin支持添加add_info
This commit is contained in:
parent
e894cf93c8
commit
5df5c7bf58
|
@ -1,5 +1,5 @@
|
||||||
import uuid
|
import uuid
|
||||||
from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, DestroyModelMixin, ListModelMixin
|
from rest_framework.mixins import CreateModelMixin, UpdateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin
|
||||||
import ast
|
import ast
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import traceback
|
import traceback
|
||||||
|
@ -174,6 +174,22 @@ class BulkDestroyModelMixin(DestroyModelMixin):
|
||||||
self.perform_destroy(instance)
|
self.perform_destroy(instance)
|
||||||
return Response(status=204)
|
return Response(status=204)
|
||||||
|
|
||||||
|
|
||||||
|
class CustomRetrieveModelMixin(RetrieveModelMixin):
|
||||||
|
|
||||||
|
def retrieve(self, request, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
serializer = self.get_serializer(instance)
|
||||||
|
data = self.add_info_for_item(serializer.data)
|
||||||
|
return Response(data)
|
||||||
|
|
||||||
|
def add_info_for_item(self, data):
|
||||||
|
"""给dict返回数据添加额外信息
|
||||||
|
|
||||||
|
给dict返回数据添加额外信息
|
||||||
|
"""
|
||||||
|
return data
|
||||||
|
|
||||||
class CustomListModelMixin(ListModelMixin):
|
class CustomListModelMixin(ListModelMixin):
|
||||||
|
|
||||||
@swagger_auto_schema(manual_parameters=[
|
@swagger_auto_schema(manual_parameters=[
|
||||||
|
|
|
@ -8,7 +8,8 @@ from rest_framework.response import Response
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
|
|
||||||
from apps.system.models import DataFilter, Dept
|
from apps.system.models import DataFilter, Dept
|
||||||
from apps.utils.mixins import MyLoggingMixin, BulkCreateModelMixin, BulkUpdateModelMixin, BulkDestroyModelMixin, CustomListModelMixin
|
from apps.utils.mixins import (MyLoggingMixin, BulkCreateModelMixin, BulkUpdateModelMixin,
|
||||||
|
BulkDestroyModelMixin, CustomListModelMixin, CustomRetrieveModelMixin)
|
||||||
from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map
|
from apps.utils.permission import ALL_PERMS, RbacPermission, get_user_perms_map
|
||||||
from apps.utils.queryset import get_child_queryset2, get_child_queryset_u
|
from apps.utils.queryset import get_child_queryset2, get_child_queryset_u
|
||||||
from apps.utils.serializers import ComplexSerializer
|
from apps.utils.serializers import ComplexSerializer
|
||||||
|
@ -183,7 +184,7 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
||||||
return queryset.filter(create_by=self.request.user)
|
return queryset.filter(create_by=self.request.user)
|
||||||
|
|
||||||
class CustomModelViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, CustomListModelMixin,
|
class CustomModelViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, CustomListModelMixin,
|
||||||
RetrieveModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
CustomRetrieveModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
增强的ModelViewSet
|
增强的ModelViewSet
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue