from rest_framework import serializers from .models import Factory class FactorySerializer(serializers.ModelSerializer): """ 工厂序列化器 """ material_count = serializers.SerializerMethodField() usernames = serializers.SerializerMethodField() class Meta: model = Factory fields = ['id', 'dealer_name', 'product_category', 'factory_name', 'brand', 'province', 'city', 'district', 'address', 'website', 'created_at', 'updated_at', 'material_count', 'usernames'] read_only_fields = ['id', 'created_at', 'updated_at', 'material_count', 'usernames'] def get_material_count(self, obj): return obj.materials.count() def get_usernames(self, obj): return list(obj.users.values_list('username', flat=True)) class FactoryListSerializer(serializers.ModelSerializer): """ 工厂列表序列化器(简化版) """ usernames = serializers.SerializerMethodField() class Meta: model = Factory fields = ['id', 'factory_name', 'brand', 'province', 'city', 'dealer_name', 'usernames'] def get_usernames(self, obj): return list(obj.users.values_list('username', flat=True))