🔖플레이하는 게임의 공략, 플레이 영상 글을 기록할 블로그🔖
2023.10.25 ~ 2023.11.07
- 모놀리식
- 데이터베이스 구조 설계
-
메인 페이지 구현 - [O]
- 페이지 제목과 블로그 입장하기 버튼이 있습니다.
-
Django admin을 이용하여 게시글 작성 - [O]
- 게시글은 제목, 내용으로 구성되어 있습니다.
-
작성되어 있는 게시글 목록을 열람. - [O]
- 게시글들의 제목을 확인 할 수 있습니다.
-
작성 되어있는 게시글 상세 페이지를 열람. - [O]
- 게시글의 제목/내용을 보는 기능입니다.
-
게시글 작성 기능 구현 - [O]
- 로그인이 되지 않더라도 글 작성이 가능합니다.
- 게시글 제목과 내용을 작성 할 수 있는 페이지
- 작성한 게시글이 저장되어 게시글 목록에 표시
- 태그를 지정할 수 있다
-
게시글 수정 기능 구현 - [O]
-
게시글의 제목 또는 내용을 수정 가능
-
게시글 제목과 내용을 수정 할 수 있는 페이지
-
수정된 내용은 게시글 목록보기/상세보기에 반영
-
-
게시글 삭제 기능 구현 - [O]
-
게시글을 삭제하는 기능
-
삭제를 완료한 이후에 게시판으로 이동
-
삭제된 게시글은 게시글 목록보기/상세보기에서 표시 안함
-
-
게시글 검색 기능 구현 - [O]
-
게시글 제목, 내용, 태그에 따라 검색가능
-
검색한 게시물은 시간순에 따라 정렬이 가능해야 합니다
-
-
메인페이지 구현 - [O]
-
회원가입/로그인 버튼
-
회원가입 버튼을 클릭하면 회원가입 페이지로 이동
-
로그인 버튼을 클릭하면 로그인 페이지로 이동
-
-
회원가입 기능 구현 - [O]
-
회원가입을 할 수 있는 페이지
-
입력받는 값은 id, password, nickname, email, profile_image
-
-
로그인 기능 구현 - [O]
-
로그인을 할 수 있는 페이지
-
입력받는 값은 id, password
-
-
게시글 작성 기능 구현 - [O]
- 로그인을 한 유저만 해당 기능을 사용 가능
-
게시글 목록 기능 구현 - [O]
- 모든 사용자들이 게시한 블로그 게시글들의 제목과 작성자, 작성자프로필사진 확인가능
-
게시글 수정 기능 구현 - [O]
-
로그인을 한 유저만 해당 기능을 사용 가능
-
본인의 게시글이 아니라면 수정이 불가
-
-
게시글 삭제 기능 구현 - [O]
-
로그인을 한 유저만 해당 기능을 사용 가능
-
본인의 게시글이 아니라면 삭제가 불가
-
-
게시글 작성 기능 구현 - [O]
-
사진 업로드
-
게시글 조회수 카운트
-
-
회원 관련 추가 기능 - [O]
-
프로필 수정(nickname, profile_image, password 변경가능)
-
닉네임 추가
-
회원탈퇴
-
-
댓글 기능 - [O]
-
댓글 추가
-
댓글 삭제
-
대댓글
-
-
정적파일 모으기 - [O]
📦blog
┣ 📂accounts
┃ ┣ 📂migrations
┃ ┣ 📂__pycache__
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜forms.py
┃ ┣ 📜models.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┣ 📜views.py
┃ ┗ 📜__init__.py
┣ 📂all_static
┣ 📂blog
┃ ┣ 📂migrations
┃ ┣ 📂__pycache__
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜forms.py
┃ ┣ 📜models.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┣ 📜views.py
┃ ┗ 📜__init__.py
┣ 📂main
┃ ┣ 📂migrations
┃ ┣ 📂__pycache__
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┣ 📜views.py
┃ ┗ 📜__init__.py
┣ 📂makeblog
┃ ┣ 📂__pycache__
┃ ┣ 📜asgi.py
┃ ┣ 📜settings.py
┃ ┣ 📜urls.py
┃ ┣ 📜wsgi.py
┃ ┗ 📜__init__.py
┣ 📂media
┃ ┣ 📂accounts
┃ ┗ 📂blog
┣ 📂static
┃ ┣ 📂assets
┃ ┃ ┗ 📜favicon.ico
┃ ┗ 📂blog
┃ ┃ ┗ 📜main.css
┣ 📂templates
┃ ┣ 📂accounts
┃ ┃ ┣ 📜base.html
┃ ┃ ┣ 📜base2.html
┃ ┃ ┣ 📜form.html
┃ ┃ ┣ 📜login.html
┃ ┃ ┣ 📜profile.html
┃ ┃ ┣ 📜update.html
┃ ┃ ┗ 📜user_confirm_delete.html
┃ ┣ 📂blog
┃ ┃ ┣ 📜blog.html
┃ ┃ ┣ 📜post.html
┃ ┃ ┣ 📜post_confirm_delete.html
┃ ┃ ┗ 📜post_form.html
┃ ┣ 📂main
┃ ┃ ┗ 📜main.html
┃ ┗ 📜404.html
┣ 📜db.sqlite3
┗ 📜manage.py
- 메인페이지화면으로 로그인시에는 상단에 메인페이지로 이동하는 home과 로그아웃이 있고 바로가기를 통해서 게시판과 프로필로 이동가능합니다.
- 비로그인시에는 상단에 로그아웃버튼대신 로그인버튼과 회원가입버튼이 있고 바로가기에는 게시판만 이동가능합니다.
- 게시판페이지의 경우 비로그인자도 글목록과 게시물을 볼 수 있지만 게시물 작성은 불가합니다.
- 검색창에 단어를 검색할경우 게시물의 제목과 내용 태그에 해당 단어가 포함된 게시물 목록을 보여줍니다.
- 게시물 5개를 기준으로 페이지가 나뉘며 화살표를 통하여 페이지 이동이 가능합니다(현재 페이지는 빨간색으로표시).
- 게시물의 제목,작성자,작성날짜,내용,태그,댓글을 확인가능합니다.
- 해당 게시물 작성자를 제외한 유저는 게시물 수정버튼과 삭제 버튼이 없습니다.
- 비로그인자가 이용시 로그인페이지로 이동됩니다.
- 로그인이 되어있으면 작성폼 페이지로 이동합니다.
- 제목,내용은 필수로 작성해야하며 작성한 뒤 저장을 누르면 작성이 완료됩니다(제목,내용 입력안하고 저장 시 해당칸 작성을 요구합니다).
- 작성완료 시 게시판으로 이동합니다.
- 게시물 수정은 해당 게시물의 작성자일 경우에만 수정버튼이 보이며 클릭 시 수정페이지로 이동하여 기존 게시물의 내용의 변경이 가능합니다.
- 해당 게시물의 작성자일 경우에만 삭제버튼이 보이며 삭제버튼 클릭 시 삭제확인페이지로 이동하여 확인 시 게시물이 삭제된다.
- 게시물에는 댓글을 달 수 있습니다.
- 로그인을 하지 않은 유저가 사용시 로그인페이지로 이동됩니다.
- 게시물에 달린 댓글에 답글을 할 수 있습니다.
- 삭제 버튼 사용 시 댓글을 삭제할 수 있습니다.
- 수정 버튼 사용 시 수정폼이 나오며 댓글의 내용을 수정할 수 있습니다.
- 로그인한 유저의 프로필 페이지입니다.
- 해당 유저의 프로필사진 이메일 닉네임을 보여줍니다.
- 바로가기를 통해서 게시판, 프로필수정, 회원탈퇴페이지로 이동이 가능합니다.
- 유저의 별명,프로필이미지, 비밀번호의 변경이 가능합니다.
- 비밀번호와 비밀번호 확인의 값이 다를경우 비밀번호 불일치를 알려주고 재입력을 요구합니다.
- 회원탈퇴 클릭 시 탈퇴여부를 재확인합니다.
- '네'를 클릭 시 유저의 정보를 삭제후 로그아웃됩니다.
- '취소'를 클릭 시 다시 프로필로 이동합니다.
-
게시물 댓글 작성기능 구현 중 발생한 405 에러
-
발생 원인 :
Request URL
을 잘못 입력하여 매칭 안된 경우 또는HTTP 메서드 (GET/POST/PUT/...)
가 잘못 매칭된 경우 생긴다고한다. 이번 경우에는 작성form
의action
에url
을 지정 안한 것을 발견했고url
을 작성해주니 제대로 댓글이 작성되었습니다.
-
-
no such column
에러- recomment 모델을 작성하고서 migrate를 하지 않은 탓에 DB에 테이블이 반영이 안되어 발생하게되었습니다.
로 DB에 테이블을 반영한 후 해결되었습니다.
python manage.py makemigrations python manage.py migrate
- recomment 모델을 작성하고서 migrate를 하지 않은 탓에 DB에 테이블이 반영이 안되어 발생하게되었습니다.
-
crispy form
을 사용 중TemplateDoesNotExist: bootstrap4/uni_form.html
에러 발생-
발생원인:
django-crispy-forms
2.0부터 템플릿 팩은 이제 별도의 패키지에 있다고한다. -
해결방법: 버전 2.0부터
Crispy-bootstrap4
도pip install
한후 INSTALLED_APPS에"crispy_bootstrap4"
를 추가하고CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap4"
템플릿팩 허용을 추가해주었다.
-
-
댓글 수정 삭제 시 404에러 발생
-
발생 원인: shell에 들어가 각각 상속한
deleteview
와updateview
을 dir로 확인해보니pk_url_kwarg
를 보고 찾아보니 전달되는 pk값이post
의 pk와comment
comment_pk 이 두개의 pk값이 전달되었는데pk_url_kwarg
에post
의 pk값인 pk가 들어가서 댓글의 쿼리값을 찾지못해 발생한 것이였다. -
해결방법:
class ReCommentDeleteView(UserPassesTestMixin, DeleteView): model = ReComment pk_url_kwarg = 'recomment_pk'
값을 설정을 해주니 해결되었습니다.
-