Мне нужно обработать загруженный файл с Geo Django. Согласно документации, я должен использовать конструктор Datasource()
из GDAL.
Проблема в том, что размер загружаемых шейп-файлов может быть меньше 2,5 МБ, поэтому MemoryFileUploadHandler
используется по умолчанию, и поэтому я не могу получить доступ к пути к файлу, необходимому для Datasource()
.
Я решил переопределить request.upload_handlers
для моего указанного c представления, используя только "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,
}
)
Что я делаю не так? Кроме того, я должен все же создать подкласс для пользовательского обработчика?