So vermeiden Sie NotImplementedError "Nur tempfile.TemporaryFile steht zur Verwendung" in Django auf Google App Engine zur Verfügung?

8

Ich verwende Django 1.1 in der Google App Engine über use_library . Es werden hier keine Django GAE Helper, Django non-rel oder ähnliche Tools verwendet. Django behandelt URL-Routing, Formularüberprüfung usw., aber ich verwende reine App Engine-Modelle.

In einem meiner Django-Formulare gibt es ein FileField, das von Zeit zu Zeit scheinbar django.core.files.uploadedfile.TemporaryUploadedFile aufruft. Diese Klasse verwendet dann tempfile.NamedTemporaryFile . Dies führt dazu, dass App Engine ausgelöst wird:

%Vor%

Um dieses Problem zu lösen, habe ich uploadedfile Modul von Google App Engine Helper für Django (das NamedTemporaryFile nicht verwendet) speicherte es als gae_uploadedfile.py im Anwendungsverzeichnis und in meiner _djangomain.py_ Datei fügte ich hinzu:

%Vor%

djangomain.py ist eine Datei, in der ich alle URLs umleite - in app.yaml habe ich:

%Vor%

Aber es hat nicht geholfen, ich bekomme immer noch diese Ausnahme. Was mache ich falsch, gibt es eine andere Lösung, um diesen Fehler bei der Verwendung von FileField von django.forms zu vermeiden?

    
Pawel Markowski 27.08.2010, 16:13
quelle

1 Antwort

9

Sie müssen die Datei settings.py mit den folgenden Einstellungen aktualisieren, um das Standardverhalten von Django zu ändern:

%Vor%

Weitere Informationen finden Sie hier: FILE_UPLOAD_MAX_MEMORY_SIZE und Upload-Handler

Wenn Sie Bilder hochladen, werden Sie durch die 1MB-Kontingente für die Bildumwandlung usw. eingeschränkt. Quotas_and_Limits

    
jonmiddleton 30.11.2010, 22:30
quelle