【发布时间】:2020-02-19 09:07:32
【问题描述】:
我需要使用 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