2014-09-22 77 views
1

如何獲取ImageField名稱在django中。如何獲取Django ImageField名稱

settings.py:

MEDIA_ROOT = os.path.join(BASE_DIR,'myApp\media') 
MEDIA_URL = '/media/' 
DEFAULT_LOGO = MEDIA_ROOT + '\logo.jpg' 

我有以下型號:

class Firm(models.Model): 
""" 
    Firm model class 
""" 
..... 
logo = models.ImageField(upload_to=MEDIA_ROOT, default=DEFAULT_LOGO) 


def firm_logo(self): 
    return '<img src="/media/%s" width="100" height="100" />' % self.logo.name 
firm_logo.allow_tags = True 

我要的是一個形象的名字是logo.jpg。所以我可以在URL中使用它。我試過self.logo.name, self.logo都是返回圖片目錄路徑。

c:\Users\...\myApp\media\logo.jpg

但我想logo.jpg

+0

是'self.logo.name'不工作,因爲我使用了'default = DEFAULT_LOGO',它被保存爲圖像名稱。 – 2014-09-22 13:54:51

回答

2

您可以使用FileField.urlImageFieldFieldField的子類):

return '<img src="%s" width="100" height="100" />' % self.logo.url 
+0

這回答了這個問題,但我認爲'img'標籤應該在模板中,而不是在視圖中。 – cor 2014-09-22 13:58:32

+0

@cor,我認爲'firm_logo'是用於管理頁面的。我猜是因爲'firm_logo.allow_tags = True'。 – falsetru 2014-09-22 13:59:41

+0

'display_image'僅用於管理界面,不能用於查看。 – 2014-09-22 13:59:48