2014-10-03 44 views
0

我有一个视图,我在request.DATA上做了一些修改,然后分割成几个序列化器,但我仍想保留一个master request.DATA的副本。问题是我设置的变量随着数据的变化而变化。django - 在不会改变的变量中预先设置request.DATA

data_full = request.DATA 
    print data_full 
    print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
    event_details = request.DATA['event_action_details'] 
    schedule_details = request.DATA['event_schedule_details'] 
    request.DATA.pop('event_action_details') 
    request.DATA.pop('event_schedule_details') 
    print data_full 

我想data_full表示整个request.DATA的初始状态。我想要分解相关的序列化数据,但最后一次打印data_full显示了删除了'event_action_details'和'event_schedule_details'的最新修改。我不想要这个。

那么如何将request.DATA的第一个例子保存为一个静态且不会被更改的变量?

回答

1

看看Python doc about binding

你的情况,你是不是在data_full制作独立副本的request.DATA,但你只能做另一个绑定到相同的字典。

来完成你想要做的尝试是这样的内容:

data_full = dict(request.DATA) 

这样你是建设有相同的数据,独立的字典。 This article很好地解释了这个概念,值得一读。

+0

谢谢!我其实只是找到了解决方案,就是这样。我实际上最终做了'data_full = request.DATA.copy()' – whoisearth 2014-10-03 14:29:28