在django中请求数据修改

oknrviil  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(152)

我有一个类与APIView,它接受请求。从那里,我传递请求到2个不同的方法,但当我打印数据从第二个函数,它是由第一个方法修改。

样本

class events(APIView):
    def post(self, request):
        data = request.data
        self.tinybird(data)
        self.events(data)

字符串
我希望在两个方法中有相同的数据副本,但tinyBird方法将一行更改为del product['options'],因此我无法在events()方法中获得product['options']。由于我将数据分别传递给两个函数,第一个函数的数据修改如何影响第二个函数的数据。

努力

我试图将请求的副本发送到每个功能或一个功能,但仍然存在相同的问题。

data1 = request.copy()
data2 = request.copy()
self.tinybird(data1)
self.events(data2)


仍然data2 throw keyerror on data2“选项”]

6gpjuf90

6gpjuf901#

我认为这个问题是因为即使您将request.data的副本传递给这两个方法,它们仍然引用同一个字典,而不是它的实际副本。

import copy

class Events(APIView):
    def post(self, request):
        data = request.data
        self.tinybird(copy.deepcopy(data))
        self.events(copy.deepcopy(data))

字符串

相关问题