优化字典数据列表,表单

This commit is contained in:
XIE7654
2025-07-16 10:52:48 +08:00
parent b82b38940b
commit baa650ea64
5 changed files with 49 additions and 7 deletions

View File

@@ -1,6 +1,11 @@
from rest_framework import serializers, viewsets
from system.models import DictData
from utils.custom_model_viewSet import CustomModelViewSet
from rest_framework.decorators import action
from rest_framework.response import Response
from django_filters import rest_framework as filters
from utils.models import CommonStatus
class DictDataSerializer(serializers.ModelSerializer):
@@ -10,7 +15,28 @@ class DictDataSerializer(serializers.ModelSerializer):
fields = '__all__'
class DictDataFilter(filters.FilterSet):
class Meta:
model = DictData
fields = ['dict_type']
class DictDataLabelValueSerializer(serializers.ModelSerializer):
dict_type_value = serializers.CharField(source='dict_type.value')
class Meta:
model = DictData
fields = ['label', 'value', 'dict_type']
class DictDataViewSet(CustomModelViewSet):
queryset = DictData.objects.filter(is_deleted=False)
serializer_class = DictDataSerializer
filterset_fields = ['dict_type']
filterset_class = DictDataFilter
@action(detail=False, methods=['get'])
def simple(self, request):
# 复用filterset_class过滤DictData
queryset = self.get_queryset().filter(status=CommonStatus.ENABLED)
serializer = DictDataLabelValueSerializer(queryset, many=True)
return Response(serializer.data)