Я использую 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
?