Ошибка 404 при реализации асинхронной функции

detail.html

{% if request.user.is_authenticated %}
<form class="like-forms d-inline" data-book-id="{{ book.pk }}" data-review-id="{{ review.pk }}">
 {% csrf_token %}
  <h4>
 {% if request.user in review.like_users.all %}
 <button type="submit" id="btn-like-{{ review.pk }}" class="btn-none bi bi-emoji-heart-eyes"></button>
 {% else %}
 <button type="submit" id="btn-like-{{ review.pk }}" class="btn-none bi bi-emoji-angry"></button>
 {% endif %}
  </h4>
</form>
{% endif %}
       
<!-js-->
    <script>
      const likeForms = document.querySelectorAll('.like-forms')
      const csrfToken = document.querySelector('[name=csrfmiddlewaretoken]').value
      likeForms.forEach((form) => {
        form.addEventListener('submit', function (event) {
          event.preventDefault()
          const reviewId = event.target.dataset.reviewId
          const bookId = event.target.dataset.bookId
 
          axios({
            
            method: 'post',
            url: `/detail/${bookId}/like/${reviewId}/`,
            headers: {'X-CSRFToken': csrfToken},
         
          })
          
          .then(response => {
            const isLiked = response.data.isLiked
            const likeBtn = document.querySelector(`#btn-like-${reviewId}`)
            console.log(isLiked)  
            if (isLiked === true) {
              likeBtn.classList.add('bi-emoji-heart-eyes')
              likeBtn.classList.remove('bi-emoji-angry')

            } else {
              likeBtn.classList.add('bi-emoji-angry')
              likeBtn.classList.remove('bi-emoji-heart-eyes')

            }
          })
          .catch(error => {
            console.log(error)
          })
        })
      })
      </script>

urls.py

path("detail/<int:book_pk>", views.detail, name="detail"),
path("detail/<int:book_pk>/like/<int:review_pk>", views.like, name="like"),
.....

views.py

def detail(request, book_pk):
    reviews = Review.objects.order_by("-pk")
    book = Book.objects.get(pk=book_pk)

    context = {
        "reviews": reviews,
        "book": book,
    }
    return render(request, "review/detail.html", context)


def like(request, book_pk, review_pk):
    review = Review.objects.get(pk=review_pk)
    book = Book.objects.get(pk=book_pk)

    if review.like_users.filter(pk=request.user.pk).exists():
        review.like_users.remove(request.user)
        is_liked = False
    else:
        review.like_users.add(request.user)
        is_liked = True

    data = {
        "isLiked": is_liked,
    }

    return JsonResponse(data)

Я получил ошибку 404 not found во время написания кода для асинхронной функции "like".

data-book-id="{{ book.pk }}" data-review-id="{{ review.pk }} в форме

Я, кажется, получаю значения pk для книг и книжных обзоров, но я не знаю, что вызывает ошибку 404.

Сообщение об ошибке консоли : POST http://localhost:8000/detail/1/like/2/ 404 (Not Found)

Я запускаю это на localhost (http://localhost:8000/)

Спасибо за прочтение...

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