2013-04-02 3 views
19

장고보기에서 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이고 장고 뷰 내에서 이미지 필드에 저장된 이미지의 절대 경로를 얻는 방법을 알고 싶습니다.

답변

28

올바르게 구성된 경우 .url : item.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)