티스토리 뷰
Django - 3. Models 과 admin 만들기
Django 에서 models 은 데이타를 말하는 것이다. shop 앱에서 필요한 데이터를 models 에서 정의해 주면된다.
- Cetagory model
- Product model
Category 와 Product 모델의 경우 image 필드가 있는데, image 의 경우 데이터 생성시에 해당 이미지를 저장할 곳을 지정해 주어야 한다.
upload_to = "category" , upload_to = "product"
그럼 Django 에서 category / product 경로의 경우 어디로 저장할 것인지 알아야 하는데, 이 부분을 settings.py 에서 설정하게 되었다.
os.path.join() 함수는 여러개의 경로위치를 붙여서 하나의 path 로 만들어주는 함수이다. BASE_DIR 을 settings.py 파일 위쪽에 보면 정의되었고, 프로젝트의 기본 위치라 생각하면된다.
category 및 product 생성시에 이미지 파일은 BASE_DIR/static/media 에 저장될 것이다. 이 부분은 데이터 생성하고 실제 파일이 어디에 위치하는지 직접 확인해 보면 확실히 이해가 될것이다.
다음은 사용자의 요청, 즉 브라우저에서 /static/ or /media/ 에 대한 요청이 왔을때, 문서에 대한 위치를 지정해 주는 코드이다.
다음은 Pillow 패키지 설치 ... ( 왜 설치해야하는지 ... ㅠㅠ. ) , 어디에 사용되는지 아직 확인되지 않음.
## Pillow 패키지 : ImageField 사용을 위해서 pillow package 설치한다.
이제 지금까지 만든 models(Category, Product) 에 대한 내용을 db 에 적용하기 위해서는 makemigrations > migrate 해주어야 한다.
- makemigrations : 변경사항에 대한 이력을 작성
- migrate : 변경된 내용을 DB 에 적용
shop > migrations > 0001_initial.py 파일을 확인해 보면, 변경 사항에 대한 내용을 확인할수 있다.
변경된 내용을 DB 에 적용(동기화)하기 위해서 migrate 를 실행한다.
다음은 Django 에서 제공하고 있는 admin 기능을 통해서 데이터에 접근하고, 필요한 경우 데이터 추가/수정/삭제 하는 기능을 확인해 보자. admin 웹에 접근하기 위해서는 superuser 권한이 필요하다. 다음과 같이 superuser를 하나 만들고 이를 이용해서 admin 웹에 접근해 보자.
username, email, password 를 입력하면 superuser 가 만들어지고 서버를 다시 구동하고 admin 웹에 접속해보자
새로운 models 을 만들고 서버를 재구동했지만 admin 웹에서는 Groups/ Users 에 대한 내용만 확인할수 있다. 그러면 우리가 만든 models(Category/Product) 를 admin 웹에서 보이게 하기 위해서는 shop > admin 에 해당 models 을 등록 시켜주어야 한다.
그리고 서버를 재구동하고 다시 admin 웹을 확인해 보면 추가된 shop 모델을 확인할수 있다.
admin 웹을 통해서 등록된 모듈은 add / change 또한 가능하다.
카테고리 추가하기
제품 추가하기
파일명을 클릭하면 이미지를 확인할수 있다.
upload 된 이미지는 /media/product/black_urban.jpg 와 같은 url 경로를 가지고 접근할수 있고, 이미지 파일은 실제로 perfectcushion > static > media 폴더 아래 저장되어 있는 것을 볼수 있다.
여기까지해서 모델을 생성하고 Admin 에 등록해서 관리하는 것까지 마쳤습니다. 끝.
'Django(장고)' 카테고리의 다른 글
Django - 5. Category view 와 Templates 만들기 (3) | 2019.11.27 |
---|---|
Django - 4. Shell 사용하기 (0) | 2019.11.26 |
Django - 2. 첫번째 앱(shop) 설치하기 (0) | 2019.11.24 |
Django - 1. 프로젝트 생성하기 (0) | 2019.11.24 |
Django - 0. 개발 환경 구축: vs code 를 이용한 장고 개발 (0) | 2019.11.24 |
- Total
- Today
- Yesterday
- venv
- 미밴드
- Python
- 파이썬
- cmd실행
- angular
- python message
- vscode
- du 명령어
- webhook
- Karabiner-Elements
- 미밴드4
- END key
- http 요청
- 팀 소통
- python slack
- HOME/END
- df 명령어
- channel oauth
- 메시지 전송
- win10
- django
- 디스크 사용량
- 장고
- cmd창
- 프로젝트 생성
- HOME key
- win7
- slack api
- amaztools
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |