2016-10-21 56 views
2

我有一個Django模型作爲請求描述。它被創建爲通過REST客戶端發出請求,用於記錄任務當前狀態,並記錄客戶端收到的歷史請求。Django休息框架創建唯一序列化器字段

該模型有幾個字段用於微調和控制所請求的任務(例如,目標對象和操作類型)。顯然,我希望客戶端在對象創建時控制這些字段,但之後不能更改此任務已開始運行的對象。

我希望類似serializers.ReadOnlyField的東西,這樣我就可以有類似的東西:

但文檔或谷歌在無法找到它。

回答

8

只是爲了在維姆的答案擴大,這是一種方式來選擇基於傳入請求方法不同的串行器:

class RequestViewSet(viewsets.ModelViewSet): 
    serializer_class = RequestModelSerializer 
    model = Request 

    def get_serializer_class(self): 
     serializer_class = self.serializer_class 
     if self.request.method == 'POST': 
      serializer_class = SerializerWithoutCertainFields 
     return serializer_class 
相關問題