24 lines
741 B
Python
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']
|