코딩공부/Python Django

KKU likelion django project (6)

integerJI 2020. 1. 2. 12:13

이번 시간에는 조금 더 나아가 세부적인 부분을 만들겠습니다.

 

먼저 삭제와 수정을 글씨가 아닌 저번에 static에 넣은 이미지로 바꿔보겠습니다.

 

postapp/templates/detail.html

 

<a href="{% url 'delete' post.pk %}"><img src="/static/delete.png" class="delete" alt="삭제" style="width: 1.2rem; height:1.2rem;"></a> 

<a href="{% url 'edit' post.pk %}"><img src="/static/edit.png" class="edit" alt="수정" style="width: 1.2rem; height:1.2rem;"></a>

되게 간단합니다.

 

수정과 삭제가 있던 부분에 static에 있는 이미지의 주소를 걸어주면 짜잔 글씨가 이미지로 바뀌어 정상작동이 되는 모습을 확인할 수 있습니다.

이렇게 수정과 삭제 버튼을 만들어 주었다면 더 나아가

 

모든 사용자가 아닌 작성자와 현재 접속자가 일치할 경우에만 수정과 삭제 버튼이 나오도록 해보겠습니다.

 

먼저 detail.html 맨 위에 style 속성을 추가하여 줍니다.

 

<style>

  .hidden {

    displaynone

  }

</style>

 

이 style는 hidden 숨기라는 속성입니다. 이 속성을 이제

 

<span class="hidden" id="control_id">

<a href="{% url 'delete' post.pk %}"><img src="/static/delete.png" class="delete" alt="삭제" style="width: 1.2rem; height:1.2rem;"></a> 

<a href="{% url 'edit' post.pk %}"><img src="/static/edit.png" class="edit" alt="수정" style="width: 1.2rem; height:1.2rem;"></a>

</span>

이렇게 수정과 삭제 버튼에 덮어 씌워줍니다.

 

그러면 이제 버튼 두 개가 모두 사라졌습니다.

 

이제 이 hidden이란 명령어를 javascript를 사용하여 나타내 보겠습니다.

 

    $("#user_name").text() 

    $(".writer_name").text() 

 

    if ($("#user_name").text() == $(".writer_name").text()) {

      $("#control_id").removeClass("hidden")

    }

 

먼저 javascript의 내용입니다.

 

좋아요 버튼 위에 해당 문자열들을 넣어줍니다

 

이는 현재 접속자를 user_name으로 받고 글을 쓴 작성자를 writer_name으로 받습니다.

 

받았을 때 user_name과 writer_name이 같을 경우에

 

hidden이란 속성을 삭제하라 라는 뜻입니다.

 

이럴 경우 현재 접속자와 글쓴이가 같을 경우 hidden이란 속성이 사라져 수정과 삭제 버튼이 나오게 되는 겁니다.

 

하지만 javascript에서 user_name과 writer_name이 뭔지 알려줘야 합니다.

 

먼저 detail.html에 작성자와 현재 접속 유저를 포장하여 줍니다.

 

<p>작성자 : <span class="writer_name">{{ post.name }}</span></p>

 

현재 접속 유저는 detail.html에 없으므로 하나 만들어주어야 합니다.

 

맨 위에 만들어 주겠습니다.

 

<p>현재 접속자 : <span id="user_name">{{ user.username }}</span></p>

이렇게 현재 접속자를 span class로 user_name으로 묶었습니다.

 

이제 결과를 확인하여 본다면..!!

 

123이란 접속자로 들어갔을 때에는 보이는 수정과 삭제 버튼이

 

admin 작성자의 게시글로 가보면 사라져 있는 모습을 확인할 수 있습니다!!

 

'코딩공부 > Python Django' 카테고리의 다른 글

KKU likelion django project (8)  (0) 2020.01.02
KKU likelion django project (7)  (0) 2020.01.02
KKU likelion django project (5) 번외  (0) 2020.01.02
KKU likelion django project (5)  (0) 2020.01.02
KKU likelion django project (4)  (0) 2020.01.02