Как сохранить нажатую кнопку в 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)