2017-11-20 3 views
0

Beim Versuch, nur die Miniaturansicht des Formulars zu speichern, bekomme ich den folgenden Fehler. 'JpegImageFile' object has no attribute 'write'Django Kissen sparen thumbnail image

Wenn einer der folgenden Fehler auftritt, wird der gleiche Fehler angezeigt. Ich denke, dass mir hier eine Art Schreibmodus-Definition fehlt. The Image.open akzeptiert jedoch nur den Modus 'r'.

Modell speichern Methode

def save(self, *args, **kwargs): 
    img = Image.open(self.image) 
    img.thumbnail((250, 250), Image.ANTIALIAS) 
    img.save(img, 'JPEG') 
    super(EventPost, self).save() 

Formviews form_valid Methode

def form_valid(self, form): 
    img = Image.open(form.cleaned_data['image']) 
    img.thumbnail((250, 250), Image.ANTIALIAS) 
    img.save(img, 'JPEG') 
    form.save(commit=True) 
    return super(FormPage, self).form_valid(form) 
+0

dieses [Tutorial] (https://python.web.id/blog/how-to-make-thumbnail-in- django-with-pillow /) wird dir helfen –

Antwort

0

Ich denke, was Sie brauchen, ist:

img = img.thumbnail((250,250), Image.ANTIALIAS) 

Und dann speichern, wenn Sie die Vorschau speichern möchten. Und die save() -Methode des Bildes akzeptiert Pfad als erstes Argument nicht file:

img.save("path/to/save/image", "JPEG", quality=from1to100, optimize=bool, progressive=bool) 
+0

'img = img.thumbnail ((250,250), Image.ANTIALIAS)' verliert das Bildobjekt und versucht ein 'None' Objekt zu speichern. Ohne es, benutze den Pfad, bekomme ich 'Errno 13] Berechtigung verweigert: 'Medien/Medien/Bilder' beim Speichern. Dies ist zumindest bei der Arbeit an localhost. – GeeS

+0

Hat Ihr Medienordner vollständige Berechtigungen? versuche sudo chmod -R 777 mein/Ordner –

+0

Hilft nicht. Auch auf der eigentlichen Site versucht und selbst dort produziert sich der gleiche Fehler ... Da muss etwas sein, dass mir hier fehlt – GeeS