我需要使用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,
}
)
我在做什么错?另外,我还是应该为自定义处理程序创建子类吗?
您无法在request函数中更改上载处理程序,因为在调用函数时上载已经完成。