Recruitment_site/offer_backend/apps/organizations/serializers.py

32 lines
1.0 KiB
Python

from rest_framework import serializers
from .models import Organization
class OrganizationSerializer(serializers.ModelSerializer):
job_count = serializers.SerializerMethodField()
class Meta:
model = Organization
fields = ['id', 'name', 'parent', 'logo', 'description', 'email', 'is_active', 'job_count']
def get_job_count(self, obj):
return obj.jobs.filter(status='published').count()
class OrganizationTreeSerializer(serializers.ModelSerializer):
"""带子公司列表,用于门户展示"""
children = serializers.SerializerMethodField()
job_count = serializers.SerializerMethodField()
class Meta:
model = Organization
fields = ['id', 'name', 'logo', 'description', 'email', 'job_count', 'children']
def get_job_count(self, obj):
return obj.jobs.filter(status='published').count()
def get_children(self, obj):
return OrganizationSerializer(
obj.children.filter(is_active=True), many=True, context=self.context
).data