2016-10-21 33 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 
相关问题