我想为POST和PUT使用不同的序列化器。
似乎通用API视图类有get_serializer_class
但APIView
类中没有,所以我应该执行以下操作?
class MyView(APIView):
def post(...):
serializer = SerializerA(data=request.data)
...
def put(...):
serializer = SerializerB(data=request.data)
...
答案 0 :(得分:0)
在此之前,谨防这样做会使您的API不一致。特别是因为PUT可用于创建新实例。
APIView是最基本的观点之一。它调用各种DRF部分 - 限制,解析器/渲染器...... - 但不处理逻辑部分 - 即序列化器,获取对象等等。
最后,您需要按照自己在问题中提到的方式自行调用序列化程序。