2013-02-03 2 views
5

웹 페이지의 html 이미지 태그를 통해 내가 admin 모듈을 통해 업로드 한 이미지 만 표시하려고합니다. 이미지는 /home/user/work/djcode/media/chicks/blondie.jpg에 있습니다. 여기 장고에서 데이터베이스에있는 이미지 표시

여기
class Image(models.Model): 
    model_name = models.CharField(max_length=50) 
    model_pic = models.ImageField(upload_to='chicks/') 
def __unicode__(self): 
    return self.model_name 

내가 사용하고 HTML 태그는 단순히

입니다

def main(request): 
    i = get_object_or_404(Image, pk=1) 
    return render_to_response('polls/main.html', {'image': i}, context_instance=RequestContext(request)) 

내 views.py의 관련 부분입니다 내 models.py의 관련 부분입니다

settings.py의 미디어 루트는 MEDIA_ROOT = '/ home/user/work/djcode/media'

입니다.

{{image.model_pic.url}} 변수는 html 템플릿을 통해 "chicks/blondie.jpg"를 표시하므로 내 이미지 개체가 실제로 템플릿으로 전송되었다고 생각합니다.

누구나 저에게 그걸 줄 수 있습니까? 정말 도움이 될 것입니다.

시간 내 주셔서 감사합니다.

답변

1

{{MEDIA_URL}} 또는 {{STATIC_URL}}을 (를) 사용해야하며, 선택은 서버에서 파일을 관리하는 방법에 따라 다릅니다.

5

템플릿의 이미지 입력란에 url 함수를 사용하는 것이 정확하지 않습니다. {{ image.model_pic.url }}으로 문제를 해결해야합니다. {{ MEDIA_URL }} 비트를 삭제하면됩니다. 귀하의 HTML을해야

-

<img src="{{ image.model_pic.url }}"> 

using files in models에 대한 설명서에서보세요.

여전히 문제가있는 경우 serving static files.에 대한 문제 일 수 있습니다. 장고의 정적 파일 검색은 프로덕션 환경에서 수행 중인지 아니면 python manage.py runserver 명령을 사용하는지에 따라 다릅니다. (파이썬 manage.py의 경우 runserver 포함) 개발, 당신은 당신의 MEDIA_URL하고 settings.py에서 올바른 MEDIA_ROOT를 가지고 있는지 확인하는 동안 서버 미디어 파일을

당신은 당신의 URL의 conf에 다음을 추가 할 수 있습니다 -

from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = patterns('', 
    # ... the rest of your URLconf goes here ... 
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

프로덕션 환경에서 파일을 제공하는 방법에 대한 지침은 docs을 참조하십시오.

관련 문제