mat/backend/apps/factory/serializers.py

39 lines
1.2 KiB
Python

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))