2014-09-22 4 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'를 사용했으며 이미지 이름으로 저장됩니다. –

답변

2

당신은 FileField.url 사용할 수 있습니다 원하는 (ImageFieldFieldField의 서브 클래스) :

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

이 질문에 대답하지만'img' 태그는보기가 아닌 템플릿에 있어야한다고 생각합니다. – cor

+0

@cor, 나는'firm_logo'가 관리자 목록 페이지를위한 것이라고 생각합니다. 나는'firm_logo.allow_tags = True' 때문에 이렇게 추측했다. – falsetru

+0

'display_image'는보기가 아닌 관리 인터페이스 전용입니다. –