Django 执行'request.POST.copy()';

Django 执行'request.POST.copy()';,django,tastypie,Django,Tastypie,我有一个Django应用程序,允许用户上传文件。 我使用tastyperest来实现这一点,它可以完美地处理正常大小的文件。 但上传500MB文件时出错 错误发生在: multipart_data = request.POST.copy() 错误是: Traceback (most recent call last): File "<env_path>\lib\site-packages\tastypie\resources.py", line 227, i

我有一个Django应用程序,允许用户上传文件。 我使用
tastype
rest来实现这一点,它可以完美地处理正常大小的文件。 但上传500MB文件时出错

错误发生在:

multipart_data = request.POST.copy()
错误是:

Traceback (most recent call last):
  File "<env_path>\lib\site-packages\tastypie\resources.py", line 227, in wrapper
    response = callback(request, *args, **kwargs)
  File "<env_path>\lib\site-packages\tastypie\resources.py", line 467, in dispatch_list
    return self.dispatch('list', request, **kwargs)
  File "<env_path>\lib\site-packages\tastypie\resources.py", line 499, in dispatch
    response = method(request, **kwargs)
  File "<env_path>\lib\site-packages\tastypie\resources.py", line 1405, in post_list
    deserialized = self.deserialize(request, request.body, format=request.META.get('CONTENT_TYPE', 'application/json'))
  File "<project_path>\apps\data_manager\rest.py", line 70, in deserialize
    multipart_data = request.POST.copy()
  File "<env_path>\lib\site-packages\django\core\handlers\wsgi.py", line 110, in _get_post
    self._load_post_and_files()
  File "<env_path>\lib\site-packages\django\http\request.py", line 315, in _load_post_and_files
    self._post, self._files = self.parse_file_upload(self.META, data)
  File "<env_path>\lib\site-packages\django\http\request.py", line 275, in parse_file_upload
    return parser.parse()
  File "<env_path>\lib\site-packages\django\http\multipartparser.py", line 254, in parse
    chunk = handler.receive_data_chunk(chunk, counters[i])
  File "<env_path>\lib\site-packages\django\core\files\uploadhandler.py", line 174, in receive_data_chunk
    self.file.write(raw_data)
MemoryError
回溯(最近一次呼叫最后一次):
文件“\lib\site packages\tastype\resources.py”,第227行,在包装器中
响应=回调(请求,*args,**kwargs)
文件“\lib\site packages\tastype\resources.py”,第467行,在调度列表中
返回自发送('列表',请求,**kwargs)
文件“\lib\site packages\tastype\resources.py”,第499行,在分派中
响应=方法(请求,**kwargs)
文件“\lib\site packages\tastype\resources.py”,第1405行,在post\U列表中
deserialized=self.deserialize(request,request.body,format=request.META.get('CONTENT\u TYPE','application/json'))
文件“\apps\data\u manager\rest.py”,第70行,反序列化
multipart_data=request.POST.copy()
文件“\lib\site packages\django\core\handlers\wsgi.py”,第110行,在get post中
self.\u加载\u发布和\u文件()
文件“\lib\site packages\django\http\request.py”,第315行,在\u load\u post\u和\u文件中
self.\u post,self.\u files=self.parse\u file\u upload(self.META,data)
文件“\lib\site packages\django\http\request.py”,第275行,在parse\u File\u upload中
返回parser.parse()
文件“\lib\site packages\django\http\multipartparser.py”,第254行,在parse中
chunk=handler.receive\u data\u chunk(chunk,counters[i])
接收数据块中的第174行文件“\lib\site packages\django\core\files\uploadhandler.py”
self.file.write(原始数据)
记忆者
根据说明,MemoryFileUploadHandler不适用于大文件

因此,下面的解决方案在
设置.py
中有效:

FILE_UPLOAD_HANDLERS = [        
    'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]