Django 웹 8 - Model object 2개 1:N 연결
** MTV 패턴 생성 순서
: models.py에 class 정의 -> views.py에서 models.py 정의한 것 바탕으로 data 가져오는 함수 작성 -> templates 에서 보여주기
** MTV 패턴 작동 순서
: models.py class로 object 만들기 -> urls.py 에서 views,py의 함수 호출 -> views.py에서 함수 실행 -> templates에서 보여줌
한 html에서 다른 html 호출시
models.py class로 object 만들기 -> templates에서 a태그로 url 호출-> urls.py 에서 views,py의 함수 호출
-> views.py에서 함수 실행
<사람마다 쓴 글 따로따로 볼 수 있는 홈페이지 만들기>
전체적인 흐름
보라색 : 만드는 순서
파란색 : pk 흐름
0. 앱 폴더 만들기 (personpost)
: settings.py 해주기, templates 폴더 생성
1. 사람 정보 보여주는 people.html 생성
-> urls.py 에 기본 설정 해 줌
-> views.py에 people함수 생성 (기본 틀)
2. 사람 정보 담을 model 생성
: models.py에 다음과 같이 class People 생성
-> $ python manage.py makemigrations
-> $ python manage.py migrate
personpost/models.py
3. views.py에 people object 가져오는 함수 정의
personpost/views.py
3-2. admin에 계정 생성
: python manage.py createsuperuser
3-3. admin 페이지 들어가서 people에 데이터 입력하기
4. people.html에 3번의 함수 people를 통해 전달받은 people_list 이용하여 각 사람의 data 보이기
personpost/people.html
=> 가져온 people 객체의 name 눌렀을 때 그 사람이 쓴 post 볼 수 있도록 a 태그로 그 사람의 pk를 post.html 에 넘겨줌
5. 넘겨 받은 pk를 url에서 보여지게 함
personproject/urls.py
=================================================================================================
이제 post
6. 각 사람이 쓴 글 보여주는 post.html 생성
7. post 정보 담을 Class 생성
personproject/models.py
8. 6번 Post class로 만든 객체 활용할 post함수 만듬
personproject/views.py
=> 여기서 의문 : 어떻게 People.objects.get(pk=post_pk) 하면 이름이 받아와지는 걸까?
9. post.html 에 쓴 글 보여주는 코드 작성
personproject/post.html
======================================================================================================
완성된 화면
people.html