django - 在一个不会改变的变量中预先设置request.DATA

时间:2014-10-03 14:21:52

标签: python django

我有一个视图,我在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的第一个示例保存为静态且不可更改的变量?

1 个答案:

答案 0 :(得分:1)

查看Python doc about binding

在您的情况下,您没有在 data_full 中制作 request.DATA 的独立副本,但您只是在同一个dict中进行另一次绑定。

要完成你想做的事,请尝试以下方法:

 data_full = dict(request.DATA)

通过这种方式,您构建了一个具有相同数据的 new 独立字典。 This article很好地解释了这个概念,值得一读。