2014-11-16 3 views
0

문제는 이미지 유형이 손상되었다는 것입니다. dashboard.html이미지가 손상된 이미지처럼 나타납니다

:

을 settings.py에 내가

import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 
SETTINGS_DIR = os.path.dirname(__file__) 
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir) 
PROJECT_PATH = os.path.abspath(PROJECT_PATH) 

TEMPLATE_DIRS = [os.path.join(PROJECT_PATH, 'templates')] 

MEDIA_ROOT = '/home/username/work_station/project1/media/static/pic' 
MEDIA_URL = '/media/' 

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..') 
SITE_ROOT = PROJECT_ROOT 
STATIC_ROOT = os.path.join(SITE_ROOT, 'static') 

내 models.py

class Image(models.Model): 
    post = models.ForeignKey(Post) 
    image = models.ImageField(upload_to='static/pic/', default = None) 
    description = models.CharField(max_length=100) 

    def __unicode__(self): 

내보기

class IndexListView(ListView): 
    template_name = "dashboard.html" 
    context_object_name = 'latest_pictures' 

def get_queryset(self): 
    return Image.objects.all() 
    return str(self.image) 

내 템플릿을 다음과 같이 내 코드는

{% for latest in latest_pictures %} 
{% load staticfiles %} 
     <div><img src="{{ MEDIA_URL }}{{ latest.image }}"></div> 
{% endfor %} 
+0

깨진 링크는 무엇입니까? – doniyor

+0

그리고/media /에서 파일을 제공하는 책임은 무엇입니까? –

답변

1

실제로, 당신의 MEDIA_ROOT

MEDIA_ROOT = os.path.join(BASE_DIR, "media") 

해야하며, 이미지 파일이 staticfiles하지, 그들은 미디어 파일입니다. 그래서 ..

{% for latest in latest_pictures %} 
    <div><img src="{{ latest.image.url }}"></div> 
{% endfor %} 

으로 충분해야합니다.

및 btw, upload_tomedia 폴더 아래의 대상입니다. upload_to='static/pic/'은 오해의 소지가있는 이름입니다 ..

및 Daniel이 명시한 바와 같이 서버가 미디어 파일을 올바르게 제공하고 있다면이 방법이 효과적입니다.

+0

오, 어떻게 내 바보. 나는이 질문을 게시하기 전에 정적 파일과 미디어 파일의 차이점을 읽었으며 필자는 템플릿 코드를 변경하려고 생각하지 않았습니다. 이제 완벽하게 작동합니다. 당신 덕분에. – catastropic

+0

내 기쁨 @catastropic – doniyor

관련 문제