我在 Google App Engine 上使用 Django 1.1use_library
。这里没有使用 Django GAE helper、Django non-rel 或类似工具。 Django 处理 URL 路由、表单验证等,但我使用的是纯 App Engine 模型。
在我的一个 Django 表单中,有一个 FileField,它有时似乎会调用django.core.files.uploadedfile.TemporaryUploadedFile。这个类然后使用tempfile.NamedTemporaryFile这会导致 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 for 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是一个文件,我在其中重定向所有网址 - inapp.yaml I have:
- url: /.*
script: djangomain.py
但这没有帮助,我仍然遇到这个异常。我做错了什么,在使用 FileField 时是否有其他解决方案可以避免此错误django.forms
?