본문 바로가기
파이썬

파이썬 Django의 ImageField 이미지가 템플릿에로드되지 않습니다.

by º기록 2021. 1. 19.
반응형

내 로컬 컴퓨터에서 Django (1.5.1)를 사용하여 갤러리를 만들고 있습니다. 내 앨범 모델에는 ImageField 가 있습니다. 앨범의 모든 이미지를 표시하는보기가 있습니다. 잘 작동하지만 마지막에는 이미지가 표시되지 않습니다. 보시다시피 이미지 테두리가 있지만 이미지가로드되지 않습니다.

여기에 이미지 설명 입력

class Category(models.Model):
 ###  
class Album(models.Model):   
    category = models.ForeignKey(Category, related_name='albums')
 ###
class Image(models.Model):
    album = models.ForeignKey(Album)
    image = models.ImageField(upload_to = 'images/albums/')
def detail(request, album_id):
    album = get_object_or_404(Album, pk=album_id)
    return render(request, 'gallery/detail.html', {'album': album})
<h1>{{ album.title }}</h1>
{% for image in album.image_set.all %}
  <a>  <img src="{{ image.image.url }}" height="420"></a>
{% endfor %}

내 앨범 주소 인 경우 : http : // localhost : 8000 / gallery / 1 /

이미지 URL은 다음과 같습니다. http : // localhost : 8000 / media / images / albums / photo_4.JPG (브라우저에 입력하면 404가 표시됨)

이 미디어 루트 및 URL :

MEDIA_ROOT = '/media/'    
MEDIA_URL = '/localhost:8000/media/'  

내 미디어 루트에는 777 권한 이 있습니다.

이제 어떻게해야합니까? 문제는 어디입니까?

 

해결 방법

 

무엇이 문제인지에 대한 단서가 있습니다. MEDIA_URL 은 다음과 같아야합니다.

MEDIA_ROOT='<the full path to your media folder>' (i.e: '/home/ike/project/media/')
MEDIA_URL='/media/'

시작 부분에 슬래시 문자를 유의하십시오. 미디어는 루트 서버 폴더의 폴더이며 다른 URL과 관련이 없기 때문입니다.

다음 줄을 urls.py 파일 끝에 추가합니다.

# You might need to import static function like this:
#from django.contrib.staticfiles.urls import static

urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


도움이 되었기를 바랍니다

 

참조 페이지 https://stackoverflow.com/questions/16196603

 

 

반응형

댓글