2015-10-30 109 views
-1

我想爲POST和PUT使用不同的序列化器。Django REST框架在APIView中使用不同的序列化器

似乎通用API視圖類有get_serializer_class但不在APIView類中,所以我應該只做以下幾點:

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

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

回答

0

畢竟,要小心這樣做會導致您的API不一致。特別是因爲PUT可以用來創建新的實例。

APIView是最基本的觀點之一。它調用各種DRF部分 - 調節,解析器/渲染器...... - 但不涉及邏輯部分 - 即序列化器,獲取對象等。

最後,您需要自己調用序列化程序,就像您在問題中提到的那樣。

相關問題