_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

woncoding/TIL

TIL | 11.24.목 [DRF ↔️ JS CRUD ]

2022. 11. 25. 01:07

- Django Rest Framework

Front JS CRUD

 

 

[좋아요 .js]

좋아요에 따라 바뀌는 아이콘과, 좋아요 받은 수 표기

async function load_like_page(){
    const payload = localStorage.getItem('payload')
    const personObj = JSON.parse(payload)
    const userId = personObj['user_id']

    const response = await fetch (`http://127.0.0.1:8000/articles/${userId}/likepage/`,{
        headers : {
            'Authorization' : 'Bearer ' + localStorage.getItem('access'),
            'content-type' : 'application/json',
        },
        method : 'GET',
    })
    response_json = await response.json()
    console.log(response_json)


    const img_box = document.getElementById('img_box')

    response_json.forEach(element => {

        const dislike_img = 'https://cdn-icons-png.flaticon.com/512/3669/3669713.png'
        const like_img = 'https://cdn-icons-png.flaticon.com/512/3670/3670159.png'

        const like = document.createElement('img') //좋아요버튼 이미지
        like.style.width = '30px'

        if(element.likes.includes(userId)){
            like.src = like_img
        } else {
            like.src = dislike_img

        }

        const like_count = document.createElement('p')
        like_count.innerText = 'likes' + element.likes_count

        const like_btn = document.createElement('button')
        like_btn.style.backgroundColor = 'transparent'
        like_btn.style.border = '0'
        like_btn.onclick = async function() {
            if(like.src === like_img){
            const response = await fetch(`http://127.0.0.1:8000/articles/${element.id}/likes/`,{
                headers : {
                    'Authorization' : 'Bearer ' + localStorage.getItem('access'),
                },
                method : 'POST',
                body:{}
            })
                like.src = dislike_img
                location.reload()
            }
            else{
                const response = await fetch(`http://127.0.0.1:8000/articles/${element.id}/likes/`,{
                    headers : {
                        'Authorization' : 'Bearer ' + localStorage.getItem('access'),
                    },
                    method : 'POST',
                    body:{}
                })
                    like.src = like_img
                    location.reload()
                }

        }

        
        like_btn.appendChild(like)
        like_btn.appendChild(like_count)
        img_box.appendChild(main_img)

    })    


}
저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 11.28.월 [DRF / Deep Learning / JS]  (0) 2022.11.28
TIL | 11.25.금 [DRF ↔️ JS CRUD ]  (0) 2022.11.28
TIL | 11.23.수 [DRF ↔️ JS CRUD]  (1) 2022.11.25
TIL | 11.22.화 [DRF ↔️ JS CRUD ]  (0) 2022.11.25
TIL | 11.21.월 [Deep Learning]  (0) 2022.11.21
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 11.28.월 [DRF / Deep Learning / JS]
    • TIL | 11.25.금 [DRF ↔️ JS CRUD ]
    • TIL | 11.23.수 [DRF ↔️ JS CRUD]
    • TIL | 11.22.화 [DRF ↔️ JS CRUD ]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바