2009-08-06 22 views
6

Sto caricando immagini (rappresentate da un FileField) e ho bisogno di rinominare quei file quando vengono caricati.Scegli il nome file di un file caricato con Django

io voglio che siano formattati così:

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

Ho letto la documentazione, ma non so se ho bisogno di scrivere la mia classe FileSystemStorage o mia classe FileField o. ..? Tutto è così collegato che non so da dove cominciare.

risposta

18

Non è necessario scrivere la propria classe FileStorage o qualcosa di così complicato.

Il parametro 'upload_to' su File/ImageFields può assumere una funzione che restituisce il percorso/file da utilizzare.

Come fare questo è già stato risposto here

-1

Il mio istinto iniziale quando leggendo questa era che avete bisogno di sovraccaricare il metodo Save sul modello, e utilizzare l'os.rename() metodo, ma che provoca una un sacco di spese generali, ed è generalmente una seccatura dall'inizio alla fine. Se vuoi semplicemente rinominare il file, ma non vuoi apportare alcuna modifica fisica ad esso (ridimensionamento, duplicazione, ecc.), Allora ti consiglio caldamente l'approccio Arcanum suggerito sopra.

Problemi correlati