2013-04-02 85 views
19

我想在Django視圖中獲取ImageField絕對路徑,以便我可以打開圖像,在其上寫入某些內容,然後將其提供給用戶。Django:獲取ImageField url在視圖中

我有問題獲取保存在媒體文件夾中的圖像的絕對路徑。

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

我得到的錯誤,那item.image沒有路(The 'banner' attribute has no file associated with it.)。 item.image是ImageField,我想知道如何獲取圖像字段中保存的圖像的絕對路徑(在Django視圖中)。

回答

28

如果配置正確,請使用.urlitem.image.url。檢查文檔here

+3

我嘗試使用的.url,但它不工作..它工作在模板,但沒有考慮到:/ – Byteme

+0

也許它的事實,我HVE擴展造成的ImageField到BannerField中......但是我在那裏完成的所有操作都被覆蓋了乾淨的方法。 – Byteme

+0

@ user2225675你如何管理圖像文件?似乎'item.image'缺少它的相關文件。也許這是由上傳錯誤配置引起的,或者您正在嘗試模板和視圖中的不同項目? – okm

2

我只是想出了什麼問題......絕對圖像路徑保存在文件變量。

例(鑑於):

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