2010-11-23 11 views
4

hier ist mein Problem, ich habe dieses Formular erstellt:Django: nicht ein hochgeladenes Bild in eine Form Imagefield binden()

class SettingsForm(forms.Form): 
    ... 
    logo = forms.ImageField() 
    ... 

Der Upload funktioniert gut und ich es geschafft, das Bild anzuzeigen, aber ich kann Binde es nicht an das Formular. Hier ist, was ich getan habe:

data = ... 
files = {'logo': SimpleUploadedFile('logo.jpg', logo.read())} 
form = SettingsForm(data=data, files=files) 

das Logo Objekt ein ImageFieldFile ist. Ich habe die Lesemethode in einer Shell getestet, es ist in Ordnung. Ich habe keine Warnungen, die die Seite anzeigen, nur "keine Datei ausgewählt".

Danke für Ihre Hilfe. Sorry für das Format dieses Posts, ich bin neu zu stackoverflow und zu Django.

+0

SimpleUploadedFile 3. Parameter content_type standardmäßig ' Text/plain ', könnte es das Problem sein? –

+0

Funktioniert immer noch nicht mit 'image/jpeg' – Adrien

Antwort

1

Im darüber nicht sicher, aber nach der django Dokumentation, auf Bindungsformen sind die Daten und Dateien nicht kwargs, sind aber args, so versuchen Sie dies:

form = SettingsForm(data, files) 
+0

Leider funktioniert dieser Code: wenn request.method == 'POST': form = SettingsForm (data = request.POST, files = request.FILES, ...) Ich benutze Kwargs, weil ich Super() in meinem Formularcode anrufe. Sie können es nicht sehen, weil ich nicht den vollständigen Code meines Formulars eingefügt habe, oder? Danke für Ihre Hilfe – Adrien

Verwandte Themen