![전체 글](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
전체 글
![22. 태그 선택란 추가](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT3Nof%2FbtrJ690QzBA%2FAJwYuSHucC1Y424pK6pxr1%2Fimg.png)
22. 태그 선택란 추가
● 태그 선택란 추가 PostCreate 클래스의 fields 리스트에 'tags'를 추가하면 post create 페이지에 tags 와 관련된 공간이 생긴다. django 에서 지원하기 때문에 이렇게 tags란 단어만 입력해도 바로 생성할 수 있다. 템플릿 파일에 input 추가 post_form.html의 {{ form }} 밑에 tags 필드를 추가한다. 은 태그를 만들고 는 표의 제목을 뜻하고 은 가로줄을 만든다. 는 셀을 만드는걸 뜻한다. 태그로 한 줄 추가 후 그 안에 label, input 요소를 넣는다. input 요소에는 문자를 입력 받도록 type="text" name="tags_str" id="id_tags_str"로 속성을 추가한다. 그 후 새로 추가한 Tags 입력칸만 쓰이도록 기..
![21. 수정 기능 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fea5bYK%2FbtrJUZwJFWr%2FrP3uNH2lKYRecDfhb45pcK%2Fimg.png)
21. 수정 기능 구현
● 포스트 수정 페이지 구현 테스트 코드로 기본 요건 정의 테스트 코드 작성 요구하는 바람직한 상태를 test_update_post() 함수로 작성한다. urls.py 와 views.py 수정 /blog/update_post/post pk로 접근한다면 views.py의 PostUpdate 클래스를 사용하도록 한다. 포스트 작성자만 수정할 수 있게 구현 dispatch()로 요청 방식 판단 dispatch() 메서드는 클라이언트에서 GET 혹은 POST 방식으로 요청했는지 판단하는 기능을 한다. CreateView, UpdateView의 경우 해당 경로에 GET 방식으로 들어오면 포스트를 작성하는 폼 페이지로 보내준다. POST로 들어오는경우 유효한지 확인후 DB에 내용을 저장한다. dispatch()가 ..
![20. 폼으로 포스트 작성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuX3yG%2FbtrJgcXZtNx%2FytGo3iJAKoMcUPxFXTk910%2Fimg.png)
20. 폼으로 포스트 작성
● 포스트 작성 페이지 구현 포스트 작성 페이지 기본 틀 만들기 더이상 admin 같은 관리자 페이지에서 포스트를 작성하는 것이 아닌 일반적인 웹 페이지와 같이 포스트를 쓸 수 있도록 포스트 작성 페이지를 구현해 본다. 테스트 코드 작성 test_create_post() 함수를 새로 만들어 /blog/create_post/ URL로 접근하면 포스트 작성 페이지가 정상적으로 접속되었다는 뜻의 status_code 200 인지 확인하고 특정 제목과 문구가 main-area에 있는지 확인한다. 테스트 하면 당연하게도 404 오류가 출력되는데 이번에는 실수없이 URL 설정을 잘해서 헤메는 일이 없도록 해야한다. views.py에 CreateView 추가 from django.views.generic import..
![19. 다대다 관계 구현(19 ~ 22) (Tag 모델, 포스트 목록과 상세 페이지에 태그 기능 추가, 태그 페이지 구현 )](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx7pwe%2FbtrI2ZxEKRk%2F3b80GL754MbCEyGibpgoK0%2Fimg.png)
19. 다대다 관계 구현(19 ~ 22) (Tag 모델, 포스트 목록과 상세 페이지에 태그 기능 추가, 태그 페이지 구현 )
● Tag 모델 만들기 조악스러운 그림으로 설명 하자면 포스트는 복수의 태그를 가질 수 있고 태그는 복수의 포스트의 가질 수 있다. 즉 포스트든 태그든 복수의 관계를 가질수 있는 말하고 다른말로 여러 요소와 동시에 연결된 관계를 다대다 관계라고 한다. 구현을 할때 django에서는 ManyToManyField를 사용한다. Tag 모델 구현 models.py에 Tag 모델 작성 후 migration 포스트 모델에 tags 필드를 추가하기 위해 ManyToManyField 사용으로 위에서 작성한 Tag 모델을 연결한다. migration 하려고 하면 null은 ManyToManyField에서 효과가 없다고 한다. null을 허용하지 않는다는 뜻인가? 하며 책을 읽어보니 ManyToManyField 에서는 n..