feat: 100% async - native async serializers (adata/asave/acreate), async cache (redis.asyncio), view call-site migration
This commit is contained in:
+5
-5
@@ -144,8 +144,8 @@ class ArticleListCreateView(generics.ListCreateAPIView):
|
||||
)
|
||||
async def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
if await sync_to_async(serializer.is_valid)():
|
||||
await sync_to_async(serializer.save)()
|
||||
if serializer.is_valid():
|
||||
await serializer.asave()
|
||||
await sync_to_async(track_task)(request.user, 'post')
|
||||
data = await get_data(serializer)
|
||||
return create_standardized_response(
|
||||
@@ -218,8 +218,8 @@ class ArticleDetailView(APIView):
|
||||
status_code=status.HTTP_403_FORBIDDEN
|
||||
)
|
||||
serializer = ArticleCreateUpdateSerializer(article, data=request.data, partial=True, context={'request': request})
|
||||
if await sync_to_async(serializer.is_valid)():
|
||||
await sync_to_async(serializer.save)()
|
||||
if serializer.is_valid():
|
||||
await serializer.asave()
|
||||
data = await get_data(serializer)
|
||||
return create_standardized_response(data=data, code=ResponseCode.SUCCESS, message='文章更新成功')
|
||||
return create_standardized_error_response(
|
||||
@@ -319,7 +319,7 @@ class ArticleCommentListCreateView(generics.ListCreateAPIView):
|
||||
article_id = self.kwargs['article_id']
|
||||
article = await aget_object_or_404(Article, pk=article_id)
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
if await sync_to_async(serializer.is_valid)():
|
||||
if serializer.is_valid():
|
||||
def _save_and_notify():
|
||||
with transaction.atomic():
|
||||
comment = serializer.save(user=request.user, article=article)
|
||||
|
||||
Reference in New Issue
Block a user