Django-Rest框架:在Vi中注册多个序列化程序

2024-10-02 00:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个定制的API(不使用模型),但是它没有在模式中显示请求定义(因此,没有以夸张的方式显示它)。我目前的代码是:

在视图.py在

class InfoViewSet(viewsets.ViewSet):

    @list_route(methods=['POST'])
    def some_method(self, request):
       data = JSONParser().parse(request)
       serializer = GetInfoSerializer(data=data)
       serializer.is_valid(raise_exception=True)
       info = get_data_from_elsewhere(serializer.data)
       return Response(info)

在网址.py在

^{pr2}$

在序列化程序.py在

class InfoSomeMethodSerializer(serializers.Serializer):

  list_id = serializers.ListField(child=serializers.IntegerField())
  password = serializers.CharField()

它以招摇过市的姿态出现,但只是回应的一部分。如何注册post参数?我也不确定我是否正确地使用了DRF(我是新来的),所以任何更正都将不胜感激。在

编辑: 我尝试了Linovia建议的serializer_类参数,但没有成功,我得到:

TypeError: InfoViewSet() received an invalid keyword 'serializer_class'

我尝试重写get_serializer_class方法,但也没有成功:

def get_serializer_class(self):
    if self.action == 'some_method':
        return InfoSomeMethodSerializer

Tags: pyselfinfodatagetreturnrequestdef

热门问题