根据特定请求强制使用TemporaryFileUploadHandler

问题描述 投票:0回答:1

我需要使用GeoDjango处理上传的文件。根据文档,我应该使用GDAL中的Datasource()构造函数。

[问题是上传的shapefile的大小可以小于2.5 MB,因此默认情况下使用MemoryFileUploadHandler,因此我无法访问Datasource()所需的文件路径。

我决定只为request.upload_handlers覆盖特定视图的"django.core.files.uploadhandler.TemporaryFileUploadHandler",因为我暂时不需要创建子类,但是出现以下错误:You cannot set the upload handlers after the upload has been processed.

这是我的代码:

def home(request):
    request.upload_handlers = ["django.core.files.uploadhandler.TemporaryFileUploadHandler"]

    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
    else:
        form = UploadFileForm()
    return render(
        request,
        'app/index.html',
        {
            'title':'HOME',
            'form': form,
        }
    )

我在做什么错?另外,我还是应该为自定义处理程序创建子类吗?

django
1个回答
0
投票

您无法在request函数中更改上载处理程序,因为在调用函数时上载已经完成。

© www.soinside.com 2019 - 2024. All rights reserved.