2009-08-06 11 views
6

Ich lade Bilder hoch (dargestellt durch ein FileField) und ich muss diese Dateien umbenennen, wenn sie hochgeladen werden.Wählen Sie den Dateinamen einer hochgeladenen Datei mit Django

Ich möchte sie so formatiert werden:

"%d-%d-%s.%s" % (width, height, md5hash, original_extension)

ich die Dokumentation habe gelesen, aber ich weiß nicht, ob ich meine eigene FileSystemStorage Klasse oder meine eigene Klasse Filefield müssen oder schreiben. ..? Alles ist so verbunden, dass ich nicht weiß, wo ich anfangen soll.

Antwort

18

Sie müssen keine eigene FileStorage-Klasse oder etwas anderes schreiben, das kompliziert ist.

Der Parameter 'upload_to' in File/ImageFields kann eine Funktion verwenden, die den zu verwendenden Pfad/die Datei zurückgibt.

Wie dies zu tun hat bereits here

-1

Mein erster Instinkt beim Lesen war, dass Sie die sparen Überlastung müssen Methode auf dem Modell, und verwenden Sie die os.rename() -Methode, aber das bewirkt, dass ein beanwortet viel Overhead, und ist in der Regel ein Ärger von Anfang bis Ende. Wenn Sie die Datei einfach umbenennen möchten, aber keine physischen Änderungen daran vornehmen möchten (Größenänderung, Duplizierung usw.), dann empfehle ich definitiv den oben beschriebenen Ansatz von arcanum.

Verwandte Themen