* 추가할 기능 구현 (게시판)
- 조회수 조작 방지 기능
* 추가할 기능 구현 (인증)
- 소셜 인증
--------------------------------------------------------------------------------------
조회수 조작 방지에 관해 어떻게 해결해야할까 고민하던 중 오늘 자료실의 좋아요 기능을 만들면서 해결책이 가늠이 잡혔다. 하지만 이번 일지에서는 구현하지 못하였다.
이번 일지에서는 자료실을 추가하였다. 게시판과 똑같다. 다만 파일 업로드, 다운로드 기능이 새로웠고, 조회수 대산 좋아요 기능을 추가하였다.
자료실 모델이다.
< model >
게시판과 똑같다. 다른 점은 FileField 가 추가되었다.
< urls.py >
게시판과 같고 다른점은 좋아요 기능 구현을 위한 url이 추가되었다.
자료실의 모습이다.
< 자료실 모습 >
게시판과 같은 모습이지만 맨 오른쪽에 좋아요 수를 보여주고 있다.
자료실 업로드는 큰 어려움이 없었는데 업로드된 파일을 다른 사용자가 다운로드해주는 기능을 추가해야했다.
< 다운로드 기능 >
DEBUG 모드에서는 단순히 URL 주소를 넘겨주면 직접 접근이 가능하다. 하지만 실제 배포하였을 때는 직접 접근이 안되기 때문에, 다운로드 기능을 추가해주어야한다. file_url 에서 맨 앞 글자를 지운 이유는 이상하게도 업로드된 사진을 웹에 보여주는 것과는 동작이 달랐기 때문인데 문제를 분석하다보니 url 다루는 차이가 있었다.
file의 경우 앞에 / 문자가 없어야 잘 동작했고 사진의 경우 / 문자가 있어야 잘 동작했다. 그래서 / 문자를 settings.py 에서는 넣어서 설정을 하고 파일 다운로드 기능에서는 위와 같이 [1:] 을 사용해 맨 처음 문자를 빼고 넣어주었다.
< 다운로드 >
다운로드를 클릭하니 다운로드 되었다.
< 다운로드 된 모습 >
다음으로 좋아요 기능이다.
< like_tools 추가 >
먼저 사용자의 프로필에 like_tools를 추가해주었다. 이는 ManyToMany 필드로 연결했다.
< 토글 기능 >
토글기능은 현재 사용자의 좋아요 리스트에서 해당 포스트 자료가 존재하면 remove 해주고 존재하지 않으면 add로 해당 포스트 자료를 추가해준다.
< html >
마찬가지로 좋아요 리스트에 있다면 좋아요를 누른것이므로 Unlike를 출력해주고 없으면 아직 누르지 않은 것으로 Like 를 출력하여 토글 버튼이 되도록 하였다.
< 좋아요 클릭 >
< 좋아요 클릭한 모습 >
좋아요를 클릭하면 Unlike로 바뀐다.
< 좋아요 수 출력 >
좋아요 수는 해당 자료를 좋아요 누른 사람들의 수를 count 하여 출력해준다.
* 서버 호스팅
- MySQL 연동
- AWS 구축 및 환경 구축
- 호스팅 및 DNS 등록
* 추가할 기능 구현 (게시판)
- 조회수 조작 방지 기능
* 추가할 기능 구현 (인증)
- 소셜 인증
'Web > Django Project' 카테고리의 다른 글
Code1018 Project (6) - 게시글, 댓글삭제 기능 (0) | 2018.08.14 |
---|---|
Code1018 Project (5) - 댓글, 조회수 기능 (0) | 2018.08.14 |
Code1018 Project (4) - 게시판 기능 (0) | 2018.08.13 |
Code1018 Project (3) - mypage 기능 (0) | 2018.08.07 |
Code1018 Project (2) - 날짜선택 Widget 기능 (0) | 2018.08.04 |