Я использую Django 1.1 в Google App Engine через use_library
. Никакие вспомогательные средства Django GAE, Django non-rel или подобные инструменты здесь не используются. Django занимается маршрутизацией URL-адресов, проверкой форм и т. Д., Но я использую только модели App Engine.
В одной из моих форм Django есть FileField, который время от времени, кажется, вызывает django.core.files.uploadedfile.TeoraryUploadedFile . Затем этот класс использует tempfile.NamedTeilitaryFile , и это приводит к повышению уровня 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 (который не использует NamedTemporaryFile
), сохранил его как 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
?