[답변 수정]
질문 수정 및 삭제를 만들었으니 답변 수정및 삭제도 만들어줘야 한다. 질문 수정 및 삭제 방법과 유사하게 진행된다. 답변 수정은 답변 등록 템플릿이 따로 없으므로 답변 수정에 사용할 템플릿이 추가로 필요하다. 답변 등록은 질문 상세 화면 아래쪽에 텍스트 입력창을 추가해 만든것 이므로 질문 상세 템플릿은 답변 수정용으로는 적합하지 않다.
먼저 답변수정버튼을 추가하자.
projects\mysite\templates\pybo\question_detail.html 을 수정하자.
위에서 {% url 'pybo:answer_modify' answer.id %}가 추가되었기 때문에 pybo/urls.py 에 URL 매핑을추가하면 된다.
projects\mysite\pybo\urls.py 에 추가하자.
views.answer_modify 함수를 참조한다고 했으니 함수를 새로 만들어주자.
projects\mysite\pybbo\views.py 에 만들자.
내용은 질문 수정 함수와 유사하다.
answer_form.html 을 참조한다고 적었지만 아직 그 폼이 없으므로 새로 작성해주자.
projects\mysite\templates\pybo\answer_form.html 을 새로 만들고 작성해주자.
답변 수정도 질문 수정과 삭제 처럼 로그인한 사용자와 답변을 작성한 사용자가 같을 경우에만 수정 버튼이 나타난다.
작동도 잘 되는지 테스트 해보자.
[답변 삭제]
답변 삭제버튼을 추가하기위해
projects\mysite\templates\pybo\question_detail.html 을 수정하자.
수정 버튼 옆에 삭제 버튼을 만들었고, 삭제 버튼에 delete 클래스를 적용했으므로 삭제 버튼을 누르면 data-uri 속성에 설정한 url 이 실행될 것이다. {% url 'pybo:answer_delete' answer.id %} 이 추가 되었기 때문에 pybo/urls.py 에 URL 매핑 규칙을 추가하자.
projects\mysite\pybbo\urls.py 를 수정하자.
views.answer_delete 함수를 참조한다고 했기때문에 새로 작성해주자.
projects\mysite\pybo\views.py 에 추가하자.
이제 로그인한 사용자와 답변 작성자가 같으면 삭제 버튼이 나온다.
잘 작동하는지 테스트도 해보자.
[수정일시 표시]
이제 마지막으로 수정일시를 표시해보자.
projects\mysite\templates\pybo\question_detail.html 파일을 다음과 같이 수정하자.
잘 나오는지 확인해보자.
질문 과 답변의 수정일시도 잘 나온다.
'Django > 따라하는 장고' 카테고리의 다른 글
25. 추천 기능 (0) | 2022.11.23 |
---|---|
24. views.py 분리 (0) | 2022.11.21 |
22. 질문 수정 및 삭제 (0) | 2022.11.18 |
21. author 표시 (0) | 2022.11.17 |
20. author 속성 (0) | 2022.11.16 |