Вызов метода 'PUT' в Django приводит к ошибке статуса 500

Когда я пытаюсь сделать fetch "PUT" запрос, но независимо от того, что он возвращает 500 статус (Internal Server Error) ошибки.
Я пытаюсь исправить эту ошибку уже несколько часов, но честно говоря, понятия не имею, в чем на самом деле проблема.
Вот мой код:
Index.js (только полезная его часть)

document.querySelectorAll(".bi").forEach(function (icon) {
    icon.addEventListener("click", (event) => like(event));
  });

  function like(event) {
    const target = event.target;
    const parent = target.parentElement.parentElement;
    const id = parent.className.slice(-1);
    const count = parent.querySelector("#like-count");
    const number = parseInt(count.innerText);
    console.log(`${number+1}`);

    fetch(`/like`, {
      method: "PUT",
      headers: {
        "X-CSRFToken": getCookie("csrftoken"),
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        'id': id,
      }),
    })
      .then(response => console.log(response))
      .then(data => {
        console.log(data);
        /* console.log(data.like);
        if (data.like) {
          target.id = "icon-svg";
          count.innerText = `${number - 1}`;
        } else {
          target.id = "icon-svg-q";
          count.innerText = `${number + 1}`;
        } */
      })
      .catch(error=>console.log(error));
  }

views.py (только полезная его часть)
@login_required
def like(request):
    if request.method == 'PUT': 
        js = json.loads(request.body)
        id = int(js['id'])
        post=Post.objects.get(pk=id)
        _user =request.user
        liked=False
        for i in post.likes.all():
            if i.user ==  request.user:
                liked=True
        if not liked:
            try:
                f = Like.objects.get(user=_user, post=post)
                return JsonResponse({
                "result":False,
                "like":liked
            }, status=400)
            except Like.DoesNotExist:
                f = Like(user=_user, post=post)   
                f.save()
                return JsonResponse({
                "result":True,
                "like":liked
            }, status=200)
        else:
            try:
                f = Like.objects.get(user=_user, post=post)
                f.delete()
                return JsonResponse({
                "result":True,
                "like":liked
            }, status=200)
            except Like.DoesNotExist:
                return JsonResponse({
                "result":False,
                "like":liked,
            }, status=400)
    else:
        return  JsonResponse({
            "result":'Complete disaster'
        }, status=400) 

urls.py
from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
    path("<str:page>", views.index, name="index"),
    path('profile/<str:username>', views.profile, name='profile'),
    path('follow/<str:username>', views.follow, name='follow'),
    path('post', views.post, name='post'),
    path('unfollow/<str:username>', views.unfollow, name='unfollow'),
    path("login", views.login_view, name="login"),
    path("logout", views.logout_view, name="logout"),
    path("register", views.register, name="register"),
    path('following', views.following, name="following"),
    path("following/<str:page>", views.following, name="following"),
    path('like', views.like, name='like'),
    path('edit', views.edit, name='edit'),
]<br>

Если вам нужна любая другая информация, чтобы помочь вам лучше понять мой вопрос, не стесняйтесь спрашивать!

Вернуться на верх