2014-10-03 58 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