cnas/server/apps/certset/serializers.py

37 lines
1.1 KiB
Python

from rest_framework import serializers
from .models import Standard, UnitType, ImplementRule
from apps.system.serializers import DictSerializer
class StandardSerializer(serializers.ModelSerializer):
class Meta:
model = Standard
fields = '__all__'
class ImplementRuleSerializer(serializers.ModelSerializer):
class Meta:
model = ImplementRule
fields = '__all__'
class ImplementRuleListSerializer(serializers.ModelSerializer):
pv_scope = DictSerializer()
pv_class = DictSerializer()
cert_type = serializers.SerializerMethodField()
class Meta:
model = ImplementRule
fields = ['id', 'code', 'name', 'cert_type', 'pv_scope', 'pv_class', 'create_time']
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('pv_scope','pv_class')
return queryset
def get_cert_type(self, obj):
return obj.get_cert_type_display()
class UnitTypeSerializer(serializers.ModelSerializer):
class Meta:
model = UnitType
fields = '__all__'