Files
chunyu_project/user/serializers/region_serializers.py
T

24 lines
741 B
Python

from adrf.serializers import ModelSerializer, SerializerMethodField
from ..models import Region
class RegionSerializer(ModelSerializer):
children = SerializerMethodField()
class Meta:
model = Region
fields = ['id', 'name', 'code', 'level', 'parent_id', 'pinyin', 'children']
async def get_children(self, obj):
children_qs = obj.children.all()
if await children_qs.aexists():
# 递归异步序列化
return [await RegionSerializer(c, context=self.context).adata async for c in children_qs]
return None
class RegionSimpleSerializer(ModelSerializer):
class Meta:
model = Region
fields = ['id', 'name', 'code', 'level', 'parent_id', 'pinyin']