2015-11-08 108 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