2015-11-08 71 views
0

我有一个观点,我正在做以下 -Django的REST框架 - 修改serializer.data

def retrieve(self, request, pk=None): 
    queryset = MyClass.objects.all() 
    class_data = get_object_or_404(queryset, pk=pk) 
    serializer = self.get_serializer(class_data) 
    new_data = serializer.data.copy() 
    new_data['my_field'] = 'updated info!' 
    serializer = self.get_serializer(data=new_data) 
    serializer.is_valid() 
    return Response(serializer.data) 

我想不必使串行数据的副本更新的信息。有没有办法在通过视图显示之前修改序列化程序中的字段?

编辑 -

serializer.data['my_field'] = 'updated info!' 

不起作用,除非我做一个拷贝。

回答

1

那么简单的解决方案就是设置检索的对象属性(class_data.my_field = 'updated info!')。

+0

非常感谢!我知道它必须是简单的! – whoisearth