feat: ADRF async views (phase1) + native async serializers (phase2) + async cache infra

This commit is contained in:
async-upgrade
2026-09-06 14:26:17 +08:00
parent 9a6577f71e
commit 8f488fcaaa
55 changed files with 2224 additions and 1513 deletions
+9 -8
View File
@@ -1,22 +1,23 @@
from rest_framework import serializers
from adrf.serializers import ModelSerializer, SerializerMethodField
from ..models import Region
class RegionSerializer(serializers.ModelSerializer):
children = serializers.SerializerMethodField()
class RegionSerializer(ModelSerializer):
children = SerializerMethodField()
class Meta:
model = Region
fields = ['id', 'name', 'code', 'level', 'parent_id', 'pinyin', 'children']
def get_children(self, obj):
children = obj.children.all()
if children.exists():
return RegionSerializer(children, many=True).data
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(serializers.ModelSerializer):
class RegionSimpleSerializer(ModelSerializer):
class Meta:
model = Region
fields = ['id', 'name', 'code', 'level', 'parent_id', 'pinyin']