我有一个视图,我在request.DATA上做了一些修改然后拆分成几个序列化程序,但我仍然希望保留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_action_details'和' event_schedule_details'除去。我不想要这个。
那么如何将request.DATA的第一个示例保存为静态且不可更改的变量?
答案 0 :(得分:1)
在您的情况下,您没有在 data_full 中制作 request.DATA 的独立副本,但您只是在同一个dict中进行另一次绑定。
要完成你想做的事,请尝试以下方法:
data_full = dict(request.DATA)
通过这种方式,您构建了一个具有相同数据的 new 独立字典。 This article很好地解释了这个概念,值得一读。