2013-09-02 2 views
0

사용자가 장고로 개발 한 프로젝트에서 사용자가보기의 양식을 통해 이미지를 업로드 할 수 있습니다. 이 부분은 데이터를 양식에 바인딩하고 프로젝트의 데이터베이스에 사용중인 디렉토리의 지정된 폴더에 이미지를 저장할 수 있다는 점에서 올바르게 작동하는 것 같습니다.템플릿의 Django ImageField에서 이미지를로드 할 수 없습니다.

GET http://localhost:8000/Users/.../project/database/user_uploads/08-30/2220.jpg 404 (NOT FOUND) 

여기에 이미지를 렌더링 내 템플릿의 라인입니다 :

나는 페이지를 렌더링하는 갈 때, 나는 다음 줄과 비슷한 무언가를 얻을 수 (업로드 된 이미지 파일 이름 "2220.jpg"가) 내 settings.py의
<img class="image" src="{{ entry.image.url }}"/> 

관련 부품 :

PROJECT_DIR = os.getcwd() 
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'database', 'user_uploads') 
MEDIA_URL = '' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 

이미지가 포함 된 모델 :

0123을

파일 시스템의 디렉토리가 아니라 localhost (또는 더 일반적으로 내 호스트 이름)를 통해 이미지를 제공하도록 요청하는 것 같아 일부 URL 구성이 누락되었습니다. 파일 위치가 정확합니다. 그냥 직접 가져 오는 대신 HTTP 요청을 실행하는 것 같습니다. 내가 뭘 놓치고 있니? 명확성을 위해 추가 정보를 제공해 드리게되어 기쁩니다.

미리 감사드립니다.

답변

0

다음 스레드가 저를 도와 :

Django MEDIA_URL and MEDIA_ROOT

를 내가 없어진 기본적으로 어떤 한 URL 구성을 MEDIA_ROOT에서 파일을 제공합니다. 또 다른 한 가지는 Django ImageField에서 url() 매개 변수를 호출하면 정규화 된 URL 이름 즉 파일의 전체 위치가 반환된다는 것입니다. 템플릿에서 이미지를 제공하는 데 필요한 것은 MEDIA_ROOT 내의 위치뿐입니다. 필자의 경우이 설정은 'database/user_uploads'였고 이미지는 '2013-09-02/images/2220.jpg'에있었습니다.

그러므로 내가 필요한 URL을했다 :

'localhost:8080/media/database/user_uploads/2013-09-02/images/2220.jpg'.

희망 사항은 동일한 문제가있는 사용자에게 도움이되기를 바랍니다.

관련 문제