-
Upload mediaProject using python/Cloning Airbnb 2021. 2. 20. 16:40
Upload media
MEDIA_ROOT and MEDIA_URL
config/settings.py에 MEDIA_ROOT와 MEDIA_URL을 추가해야 한다. MEDIA_ROOT는 user가 upload한 파일들이 저장되는 파일시스템 절대경로다. 그리고 MEDIA_URL은 MEDIA_ROOT에 의해서 제공된 media file들을 다루는 url이다. 그리고 url은 반드시 /로 끝나야 한다. "/media"라고 하면 안 되고 "/media/"라고 해야 한다.
urlpatterns and static
MEDIA_URL을 settings.py에 설정했다고 해서 app은 user-uploaded file에 접근할 수 없다. urls.py에 urlpattern에 경로를 추가해줘야 한다. 경로는 static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)이다.
upload_to
ImageField에서 upload_to 옵션을 주고 "room_photos" 같이 경로를 설정해주면 user가 media를 upload할 때 해당 경로로 media가 저장된다. Photo에서는 "room_photos"로, User의 avatar는 "avatar"로 경로를 설정해줬다.
파일을 업로드하면 다음과 같이 각각의 directory에 media file이 저장된 것을 확인할 수 있다.
참고 자료
- 노마드 코더의 Airbnb 클론 강의
- from pathlib import Path
- MEDIA_ROOT
- MEDIA_URL
- Managing static file
소스 코드
github.com/zpskek/airbnb-clone-v3/commit/3456be1a0e068e5a53abcb58aa7944eb46604749
'Project using python > Cloning Airbnb' 카테고리의 다른 글
Create Review Model and Admin (0) 2021.02.21 Django TabularInline and StackedInline (0) 2021.02.21 Create Room Model and Admin and Core Model (0) 2021.02.20 Django commands (0) 2021.02.20 Create User Model and Admin Panel (0) 2021.02.19