작성
·
222
답변 1
0
안녕하세요.
위 post.photo.url을 통해서 photo 파일에 대한 URL 문자열을 생성해줍니다.
혹시 지정 포스팅에 사진을 업로드하셨나요? 사진이 업로드된 경우에 사진에 대한 URL을 생성해줍니다.
강의대로 실습을 하셨지만 실습하시는 중에 잘못 지정된 코드가 있을 수 있습니다.
media 세팅에 오류가 있어서, 지정 경로에 파일이 제대로 저장이 되지 않았거나 (settings 내의 MEDIA_URL/MEDIA_ROOT 설정명에 오류가 있거나 엉뚱한 값으로 지정이 되었을 수도 있구요.) 프로젝트/urls.py에 media 서빙 설정이 누락되어서 일 수도 있습니다.
그러니, 적용하신 MEDIA 관련 설정들을 아래 댓글에 순서대로 스샷과 함께 정리해서 보여주시겠어요? 정리하는 과정에서 직접 오류를 찾아내실 수도 있습니다. 제가 오류를 찾아드리기도 수월하고. 무엇보다 MEDIA 세팅에 대한 이해도가 올라가실 것입니다.
그리고, post.photo.url 값을 직접 확인하는 방법 중에 하나는 터미널(파워쉘 혹은 cmd)에서 장고 쉘을 띄우신 후에 ( python manage.py shell ), 장고 쉘에서 Post 모델을 임포트하시고, 하나의 post 인스턴스를 획득하신 후에 ( post = Post.objects.get(pk=조회하실_키지정) ), 이 post에는 사진(photo)이 저장된 포스트를 지정해주셔야 하며, print(post.photo.url) 시에 "/media/" 문자열이 포함된 주소가 출력됩니다. 그럼 그 주소 앞에 http://localhost:8000 을 붙여서 사진 주소로 접근해보실 수 있습니다. 이때 404 응답이 아니라 사진 응답이 나오면 정상 동작입니다. 정상동작한다면 Admin 코드에 오류가 있다고 생각해볼 수 있습니다.
같이 고민해보시죠. :-)
그리고 편집기에서 import 제안이 뜨는 것은 VSCode에서는 지원해주지 않구요. 유료툴인 PyCharm Professional에서 제공하는 기능입니다. 무료인 PyCharm Community에서는 장고 지원이 안 됩니다. 유료툴이라서 아직 강의 내에서 PyCharm 가이드는 드리지 않았는 데요.
2022년 2월 말 즈음에 제 인프런 강의 구독자 분들께 PyCharm 제작사인 JetBrains으로부터 6개월 툴 사용권을 후원받아 제공해드릴 예정입니다.
혹은 학생이시라면 JetBrains에서 1년 단위로 JetBrains의 모든 툴을 사용할 수 있는 라이센스를 제공해주니 신청해보셔도 좋습니다.