feat: 100% async - native async serializers (adata/asave/acreate), async cache (redis.asyncio), view call-site migration

This commit is contained in:
async-upgrade
2026-09-06 14:36:41 +08:00
parent 8f488fcaaa
commit 571641e539
18 changed files with 81 additions and 81 deletions
+9 -11
View File
@@ -42,9 +42,9 @@ class MessageListView(APIView):
if msg_type == 'system':
queryset = SystemMessage.objects.all()
def _paginate_system():
async def _paginate_system():
paginator = MessagePagination()
page = paginator.paginate_queryset(queryset, request)
page = await sync_to_async(paginator.paginate_queryset)(queryset, request)
read_ids = set(
SystemMessageRead.objects.filter(
user=request.user,
@@ -52,10 +52,9 @@ class MessageListView(APIView):
).values_list('system_message_id', flat=True)
)
serializer = SystemMessageSerializer(page, many=True, context={'request': request, 'read_ids': read_ids})
return paginator.get_paginated_response(serializer.data).data
return paginator.get_paginated_response(await serializer.adata).data
# 兜底:DRF 分页器与 SystemMessageSerializer 内部为同步调用
data = await sync_to_async(_paginate_system)()
data = await _paginate_system()
return create_standardized_response(data=data, code=ResponseCode.SUCCESS)
valid_types = ['reply', 'at_me', 'like']
@@ -64,14 +63,13 @@ class MessageListView(APIView):
else:
queryset = Message.objects.filter(recipient=request.user)
def _paginate_messages():
async def _paginate_messages():
paginator = MessagePagination()
page = paginator.paginate_queryset(queryset, request)
page = await sync_to_async(paginator.paginate_queryset)(queryset, request)
serializer = MessageListSerializer(page, many=True, context={'request': request})
return paginator.get_paginated_response(serializer.data).data
return paginator.get_paginated_response(await serializer.adata).data
# 兜底:DRF 分页器与 MessageListSerializer(obj.sender 外键访问)内部为同步调用
data = await sync_to_async(_paginate_messages)()
data = await _paginate_messages()
return create_standardized_response(data=data, code=ResponseCode.SUCCESS)
@@ -294,5 +292,5 @@ class SystemMessageDetailView(APIView):
serializer = SystemMessageDetailSerializer(system_message, context={'request': request})
# 兜底:SystemMessageDetailSerializer.get_is_read 内部有同步 ORM exists() 查询
data = await sync_to_async(lambda: serializer.data)()
data = await serializer.adata
return create_standardized_response(data=data, code=ResponseCode.SUCCESS)