Fetch загружает страницу, которая показывает только данные Json вместо страницы, которая должна быть отображена

Я пытаюсь сделать приложение, подобное twitter, для проекта класса. При нажатии на кнопку "нравится" кнопка должна меняться на "не нравится" и количество "нравится" должно увеличиваться без перезагрузки страницы. Вместо этого страница перезагружается на белый фон и единственное, что есть на странице, это "{"likeButton": "Unlike", "total_likes": 0}" моих json данных. Любая помощь будет оценена по достоинству.

views.py

@login_required
def likes(request, post_id):
    try:
        current_user = request.user
        post = Post.objects.get(id = post_id)
        likeCount = Post.objects.get(id = post.id)
        total_likes = likeCount.like_count
        likeButton = request.POST.get('buttonForLikes')
        if likeButton == 'Like':
            total_likes = total_likes + 1
            post.like_count = total_likes
            post.save()
            post.like.add(current_user)        
            post.save()
        else:
            total_likes = total_likes - 1
            post.like_count = total_likes
            post.like.remove(current_user)
            post.save()
        return JsonResponse ({'likeButton': likeButton, 'total_likes': total_likes,}, status=200,)
    except KeyError:
        return HttpResponseBadRequest("Like Error")

urls.py

from django.urls import path

from . import views

app_name = "network"

urlpatterns = [
    path("", views.index, name="index"),
    path("login", views.login_view, name="login"),
    path("logout", views.logout_view, name="logout"),
    path("register", views.register, name="register"),
    path("new-post", views.new_post, name="new-post"),
    path("profile/<str:username>", views.profile, name="profile"),
    path("follows/<str:username>", views.follows, name="follows"),
    path("following", views.following, name="following"),
    path("edit", views.edit, name="edit"),
    path("likes/<int:post_id>", views.likes, name='likes')
]

HTML

javascript

let likes = document.getElementById('likeButton');

    likes.addEventListener("click", (e) =>{
    e.preventDefault();
    e.stopPropagation();
    let likeCount = document.getElementById('numOfLikes');
        
        fetch(`/likes/${likes.dataset.id}`, {
            credentials: "include",
            method: "PUT",
            headers: {
                "Accept": "application/json",
                'Content-Type': 'application/json',
            },
        
            
        })

            .then(response => response.text())
            .then(result => {

            if (result.likeButton === 'Like'){
                likes.innerHTML = "Unlike";
                likeCount.innerHTML = result.total_likes;

            }
            else{
                likes.innerHTML = 'Like';
                likeCount.innerHTML = result.total_likes;
            }

        })

        return false;
    });
Вернуться на верх