Django REST Framework在APIView中使用不同的序列化程序

时间:2015-10-30 10:07:52

标签: django django-rest-framework

我想为POST和PUT使用不同的序列化器。

似乎通用API视图类有get_serializer_classAPIView类中没有,所以我应该执行以下操作?

class MyView(APIView):
    def post(...):
        serializer = SerializerA(data=request.data)
        ...

    def put(...):
        serializer = SerializerB(data=request.data)
        ...

1 个答案:

答案 0 :(得分:0)

在此之前,谨防这样做会使您的API不一致。特别是因为PUT可用于创建新实例。

APIView是最基本的观点之一。它调用各种DRF部分 - 限制,解析器/渲染器...... - 但不处理逻辑部分 - 即序列化器,获取对象等等。

最后,您需要按照自己在问题中提到的方式自行调用序列化程序。