2013-04-02 17 views
19

Sto cercando di ottenere il percorso assoluto di ImageField nella vista Django, così posso aprire l'immagine, scrivere su di essa qualcosa e poi servirla all'utente.Django: visualizza l'URL ImageField

Ho riscontrato un problema con il percorso assoluto dell'immagine salvata nella cartella multimediale.

item = get_object_or_404(Item, pk=pk) 
absolute_url = settings.MEDIA_ROOT + str(item.image.path) 

ottengo l'errore, che item.image non hai percorso (The 'banner' attribute has no file associated with it.). item.image è ImageField e mi piacerebbe sapere come ottenere il percorso assoluto dell'immagine salvata nel campo dell'immagine (all'interno della vista Django).

risposta

28

Se configurato correttamente, utilizzare .url: item.image.url. Controlla i documenti here.

+3

Ho provato ad utilizzare .url ma non funziona .. funziona nei modelli ma non in vista:/ – Byteme

+0

Forse è dovuto al fatto che ho hve esteso ImageField in BannerField ... ma tutto ciò che ho fatto è un metodo pulito sovrascritto. – Byteme

+0

@ user2225675 Come gestite i file immagine? Sembra che 'item.image' non abbia il relativo file. Forse è stato causato da una configurazione errata del caricamento o stai provando diversi elementi nel modello e nella visualizzazione? – okm

2

ho capito qual era il problema ... percorso dell'immagine assoluto viene salvata nella variabile del file.

Esempio (in vista):

item = Item.objects.get(pk=1) 
print item.file # prints out full path of image (saved in media folder) 
Problemi correlati