21 lines
769 B
Python
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
|