Как сохранить нажатую кнопку в javascript даже после обновления страницы?

Я пытаюсь создать одностраничное приложение, но похожее на twitter для веб-проекта cs50, используя Django

Я использую fetch API для получения всех постов на сайте и использую javascript, чтобы подключить их следующим образом :

document.querySelector('#all-posts-view').innerHTML = '';

        fetch(`all_posts`,{
             headers: new Headers({ 'secure': 'secure'})
            })
        .then(response => response.json())
       
        .then(posts => {
             console.log(posts)

            posts.forEach(function(post) {
              
                let div = document.createElement("div");
                div.setAttribute('id', 'post'); 
                console.log(post.author)
                div.innerHTML = ` <a href='profile/${post.author}'   id='profile-page' data-profile=${post.author_id} data-name=${post.author} > <P>${post.timestamp}</p> <h1 class="capitalize">${post.author}</h1></a>  <h3>${post.post}</h3>  <p>${post.likes}</p> <button onclick='style.color = "blue"'>Likes</button> {%if ${post.author} == 'zero'%} zzz{%endif%}`
                document.querySelector("#all-posts-view").append(div);                                                
           })
        })   

и каждый div имеет кнопку, чтобы понравиться сообщению, но когда пользователь нажимает на кнопку и лайки увеличиваются на один, я не знаю, как я могу показать пользователю, что кнопка нравится была нажата, потому что если страница обновляется, функция будет просто показывать обычные сообщения и пользователь не сможет сказать, понравилось ли ему сообщение или нет

При нажатии на кнопку :

После обновления: После обновления:

Итак, как я могу сохранить нажатую кнопку для этого пользователя? Нужна ли мне глобальная переменная для представления пользователя? Или мой подход изначально неверен?

вот мой views.py для этой функции :

def all_posts(request):
    
    posts = Post.objects.all()
    posts = posts.order_by("-timestamp").all()
    return JsonResponse([post.serialize() for post in posts], safe=False) 
Вернуться на верх