39 lines
1.2 KiB
Python
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))
|