Backend/Django + Bootstrap 개발 일지
27. 폼으로 댓글 기능 구현(댓글 수정, 삭제 기능 구현)
● 댓글 수정 기능 구현 댓글 수정 버튼 테스트 댓글을 작성 하였으나 수정 할 수 없다면 정말 난감 할 것이다. 그러므로 수정 버튼을 만들어 수정 할 수 있도록 한다. 테스트 코드 작성 후 post_detail.html 파일 수정 이전에 comment를 2개 작성 하였으므로 이를 참고하여 테스트 코드를 작성한다. 테스트 코드 수정 추가적인 테스트를 위해 def test_comment_update에 내용을 추가한다. 댓글 수정 페이지 만들기 urls.py에 댓글 수정 페이지 경로를 추가한다. update_comment// 경로에서 쓸 CommentUpdate 클래스를 views.py파일에 추가한다. models.py에서 Comment class를 가져온다. urls.py에서 추가한 코드가 인식 할 수 있도..
26. 폼으로 댓글 기능 구현(댓글 작성 폼 구현)
● 댓글 작성 폼 구현 댓글 작성 폼을 위한 테스트 코드 작성 비로그인시 댓글 입력 폼이 안 보이게 하고 로그인을 해야지만 Log in 버튼이 보여야 한다. 당연하게도 관련된 템플릿을 수정하지 않았으므로 테스트에 통과하지 못한다. 로그인 상태에 따라 댓글 입력란 혹은 로그인 버튼 나타내기 post_detail.html 파일에서 comment 폼에 해당하는 곳을 수정한다. if문 이용으로 로그인시 폼이 보이고 비로그인시 모달을 나타낼 수 있는 버튼을 만들어 본다. 모달은 내비게이션 바에 정의되어 있다. data-toggle과 data-target을 내비게이션 바의 로그인 버튼과 동일하게 설정하여 버튼 클릭시 로그인 모달이 나타나게 만든다. CommentForm 구현 forms.py 만들고 필드 추가 mod..
25. 폼으로 댓글 기능 구현(Comment 모델, 상세 페이지에 댓글 기능 반영)
● Comment 모델 만들기 models.py에 Comment 모델 추가 후 migration post는 어느 포스트에 작성한 댓글인지를 저장하는 변수다. author은 누가, content는 댓글 내용을 저장하고, created_at은 댓글 작성일시, modified_at은 수정일시를 저장한다. 여러 댓글들이 작성될 수 있도록 post 필드는 ForeignKey로 설정한다. 그리고 아래쪽에는 author와 content를 출력하게 해주는 __str__() 함수를 만든다. DB에 반영하기 위해 migration 한다. 댓글 작성 페이지 확인 blog/admin.py를 수정하여 관리자 페이지에서 댓글을 관리 할 수 있도록 한다. ● 포스트 상세 페이지에 댓글 기능 반영 댓글 기능을 구현했으니 실제로 페이..
24. 외부 라이브러리를 블로그에 활용(회원가입 & 로그인 기능 구현)
django-allauth 설치 allauth는 구글, 카카오, 페이스북으로 로그인하는 기능 구현을 쉽게 해주는 라이브러리다. settings.py 파일 수정 새로 설치한 라이브러리를 적용하기 위해 INSTALLED_APP에 추가한다. 아래쪽은 인증관련 코드를 입력한다. django_blog_project/urls.py 파일 수정 allauth가 사용할 수 있는 URL 경로를 추가한다. DB에 반영 django-allauth 적용 구글 개발자 콘솔에서 새 프로젝트와 클라이언트 만들기 구글에 개발자 콘솔(console.developers.google.com)에서 웹 사이트를 등록해야 구글 계정으로 등록할 수 있게 해준다. 구글 계정을 가진 모든 이들이 사용할 수 있도록 User Type을 외부로 설정한다...