2013-04-02 9 views
19

Ich versuche, ImageField absoluten Pfad in Django Ansicht zu bekommen, damit ich das Bild öffnen kann, schreiben Sie etwas und dann dienen Sie es für den Benutzer.Django: Get ImageField URL in Sicht

Ich habe Probleme, absoluten Pfad für das Bild, das im Medienordner gespeichert ist.

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

ich Fehler, dass item.image nicht Pfad hat (The 'banner' attribute has no file associated with it.). item.image ist ImageField und ich würde gerne wissen, wie man den absoluten Pfad des im Bildfeld gespeicherten Bildes (innerhalb der Django-Ansicht) erhält.

Antwort

28

Bei richtiger Konfiguration verwenden Sie .url: item.image.url. Überprüfen Sie die Dokumentation here.

+3

Ich versuchte .url verwenden, aber es funktioniert nicht .. es in Vorlagen funktioniert aber nicht in Sicht:/ – Byteme

+0

Vielleicht ist es durch die Tatsache, dass ich verlängert hve ImageField in BannerField ... aber alles, was ich dort gemacht habe, ist überschrieben saubere Methode. – Byteme

+0

@ user2225675 Wie verwalten Sie Bilddateien? Es scheint, dass 'item.image' seine relative Datei nicht enthält. Vielleicht wurde es durch Fehlkonfiguration des Hochladens verursacht oder Sie versuchen verschiedene Elemente in Vorlage und Ansicht? – okm

2

ich genau das, was das Problem war, herausgefunden ... absoluter Bildpfad in Datei Variable gespeichert wird.

Beispiel (in Sicht):

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