diff --git a/apps/utils/serializers.py b/apps/utils/serializers.py index 97c3396d..14684584 100755 --- a/apps/utils/serializers.py +++ b/apps/utils/serializers.py @@ -49,3 +49,8 @@ class SendSmsSerializer(serializers.Serializer): class GenerateVoiceSerializer(serializers.Serializer): msg = serializers.CharField(label='文本') + + +class TestTaskSerializer(serializers.Serializer): + args = serializers.ListField(child=serializers.CharField(), label='列表参数', required=False, null=True) + kwargs = serializers.JSONField(label="字典参数", required=False, null=True) diff --git a/apps/utils/views.py b/apps/utils/views.py index 0104d6af..1af07025 100755 --- a/apps/utils/views.py +++ b/apps/utils/views.py @@ -12,7 +12,7 @@ from rest_framework.response import Response from rest_framework.exceptions import ParseError from apps.utils.viewsets import CustomGenericViewSet from apps.utils.mixins import CustomCreateModelMixin -from apps.utils.serializers import GenSignatureSerializer, GenerateVoiceSerializer, SendSmsSerializer +from apps.utils.serializers import GenSignatureSerializer, GenerateVoiceSerializer, SendSmsSerializer, TestTaskSerializer from rest_framework.views import APIView from rest_framework.decorators import action from rest_framework.serializers import Serializer @@ -85,11 +85,14 @@ class TestViewSet(CustomGenericViewSet): res = generate_voice(**vdata) return Response(res) - @action(methods=['get'], detail=False, serializer_class=Serializer) + @action(methods=['post'], detail=False, serializer_class=TestTaskSerializer) def task(self, request, pk=None): """任务派发测试 任务派发测试 """ - show() + serializer = TestTaskSerializer(data=request.data) + serializer.is_valid(raise_exception=True) + vdata = serializer.validated_data() + show.delay(*vdata.get('args', []), **vdata.get('kwargs', {})) return Response()