Files

21 lines
769 B
Python

"""核心应用公共组件:async 序列化器基类(adrf 0.1.14+ 需要 asave/acreate)。"""
from rest_framework import serializers as drf_serializers
from asgiref.sync import sync_to_async
class AsyncModelSerializer(drf_serializers.ModelSerializer):
"""给所有需要的 model serializer 加 asave / acreate。"""
async def asave(self, **kwargs):
return await sync_to_async(self.save)(**kwargs)
async def acreate(self, validated_data):
return await sync_to_async(self.Meta.model.objects.create)(**validated_data)
# 兼容旧路径:apps.core.views.AsyncModelSerializer
from apps.core import views as _views # noqa: E402
if not hasattr(_views, "AsyncModelSerializer"):
_views.AsyncModelSerializer = AsyncModelSerializer