Django кнопка типа Without Page Refresh Using Ajax и Load html page with ajax info
Я делаю проект, в котором есть кнопка "нравится" или "не нравится" для каждого сообщения на веб-странице. Но когда я нажимаю на кнопку like, я получаю страницу, которая выглядит следующим образом (http://127.0.0.1:8000/give_like/2): {"post_to_like": 2}
view.py
def give_like(request, post_to_like):
like = Likes(user=request.user, post = Post.objects.get(id=post_to_like))
checker = [like.post_id for like in Likes.objects.filter(user = request.user)]
if post_to_like in checker:
Likes.objects.filter(post_id=post_to_like, user = request.user).delete()
else:
like.save()
return JsonResponse({'post_to_like':post_to_like})
как правильно загрузить всю страницу как html, но без перезагрузки всей страницы и получить информацию, что я уже следую этому посту, так что я должен увидеть кнопку un-like и остальную часть страницы?
js.js
var like = document.getElementById("like");
likeDislike(like, function() {
fetch(`/give_like/${like.dataset.post_to_like}`)
.then(response => response.json())
.then(data => {
like.querySelector('small').innerHTML = data.total_likes;
});
}
);
index.html
<small><p id="total_likes" > {{post.current_like}} </p></small>
urls.py
path("give_like/<int:post_to_like>", views.give_like, name="give_like"),