Как избежать NotImplementedError «Только tempfile. Временный файл доступен для использования» в django на Google App Engine?

Я использую Django 1.1 в Google App Engine через use_library . Никакой помощник Django GAE, Django non-rel или подобные инструменты здесь не используются. Django обрабатывает маршрутизацию URL-адресов, проверку форм и т. Д., Но я использую чистые модели App Engine.

В одной из моих форм Django есть FileField, который время от времени вызывает django.core. files.uploadedfile.TemporaryUploadedFile . Этот класс затем использует tempfile. NamedTeditionalFile , и это приводит к повышению уровня App Engine:

File "/base/python_runtime/python_dist/lib/python2.5/tempfile.py", line 45, in PlaceHolder
   raise NotImplementedError("Only tempfile.TemporaryFile is available for use")

Пытаясь решить эту проблему, я взял модуль загруженного файла из Google App Engine Helper для Django (который не использует NamedTevenFile ) сохранил его как gae_uploadedfile.py в каталоге приложения и в моем файле _djangomain.py_ , который я добавил:

from google.appengine.dist import use_library
use_library('django', '1.1')
(...)
import gae_uploadedfile
django.core.files.uploadedfile = gae_uploadedfile

djangomain.py - это файл, куда я перенаправляю все URL - в app.yaml у меня есть:

- url: /.*
  script: djangomain.py

Но это не помогло, я все еще получаю это исключение. Что я делаю не так, есть ли другое решение, чтобы избежать этой ошибки при использовании FileField из django.forms ?

8
задан Y2H 8 March 2018 в 09:10
поделиться