Sto utilizzando Django 1.1 su Google App Engine tramite use_library
. Nessun helper Django GAE, strumenti Django non relé o simili sono usati qui. Django gestisce il routing degli URL, la convalida dei moduli, ecc., Ma sto utilizzando i modelli di App Engine puri.Come evitare NotImplementedError "Solo tempfile.TemporaryFile è disponibile per l'uso" in django su Google App Engine?
In uno dei miei Django forma c'è un FileField, che di volta in volta, sembra chiamare django.core.files.uploadedfile.TemporaryUploadedFile. Questa classe utilizza quindi tempfile.NamedTemporaryFile e questo si traduce in App Engine raising:
File "/base/python_runtime/python_dist/lib/python2.5/tempfile.py", line 45, in PlaceHolder
raise NotImplementedError("Only tempfile.TemporaryFile is available for use")
Cercando di risolvere questo problema ho preso uploadedfile module da Google App Engine Helper per Django (che non utilizza NamedTemporaryFile
) salvato come gae_uploadedfile.py
nella directory dell'applicazione e nel mio file _djangomain.py_
ho aggiunto:
from google.appengine.dist import use_library
use_library('django', '1.1')
(...)
import gae_uploadedfile
django.core.files.uploadedfile = gae_uploadedfile
djangomain.py è un file in cui i reindirizzare tutti gli URL - in app.yaml ho:
- url: /.*
script: djangomain.py
Ma non ha aiutato, ho ancora questa eccezione. Cosa sto facendo male, c'è un'altra soluzione per evitare questo errore durante l'utilizzo di FileField da django.forms
?