Ни один url не отвечает при выполнении ajax-запроса post в Django

Здравствуйте, я пытаюсь реализовать функцию like на видео в django с помощью ajax. Но когда я нажимаю на иконку like, сервер не пытается отправить данные по какому-либо url и не показывает ни ошибки, ни успешной попытки. Таким образом, количество лайков остается неизменным.

views.py

class DetailVideo(View):
def get(self, request, pk, *args, **kwargs):
    video = Video.objects.get(pk=pk)

    form = CommentForm()
    comments = Comment.objects.filter(video=video).order_by('-created_on')
    categories = Video.objects.filter(category=video.category)[:15]

    context = {
        'object': video,
        'comments': comments,
        'form': form,
        'categories': categories
    }
    return render(request, 'courses/detail_video.html', context)

def post(self, request, pk, *args, **kwargs):
    video = Video.objects.get(pk=pk)

    form = CommentForm(request.POST)
    if form.is_valid():
        comment = Comment(
            user=self.request.user,
            comment=form.cleaned_data['comment'],
            video=video
        )
        comment.save()

    comments = Comment.objects.filter(video=video).order_by('-created_on')
    categories = Video.objects.filter(category=video.category)[:15]

    context = {
        'object': video,
        'comments': comments,
        'form': form,
        'categories': categories
    }
    return render(request, 'courses/detail_video.html', context)



class Like(View):
def post(self, request, *args, **kwargs):
    if request.POST.get('action') == 'post' and request.is_ajax():
        result = ''
        pk = int(request.Post.get('videoid'))
        video = get_object_or_404(Video, pk = pk)
        if video.likes.filter(pk=request.user.pk).exsits():
            video.likes.remove(request.user)
            video.like_count -= 1
            result = video.like_count
            video.save()
        else:
            video.likes.add(request.user)
            video.like_count += 1
            result = video.like_count
            video.save()
        return JsonResponse({'result': result})

urls.py

app_name = "courses"

urlpatterns = [
    path('', views.Index.as_view(), name = "home"),
    path('user-uploads/<str:username>', views.UserUploads.as_view(), name = "user-uploads"),
    path('create-video',  CreateVideo.as_view(), name='video-create'),
    path('<int:pk>/', DetailVideo.as_view(), name='video-detail'),
    path('<int:pk>/update-video', UpdateVideo.as_view(), name='video-update'),
    path('<int:pk>/delete-video', DeleteVideo.as_view(), name='video-delete'),
    path('category/<int:pk>', VideoCategoryList.as_view(), name='category-list'),
    path('search/', views.VideoSearch.as_view(), name='search-list'),
    path('like/', views.Like.as_view(), name='like'),
]

script.js

$(document).on('click', '#like-button', function (e) {
e.preventDefault();
$.ajax({
  type: 'POST',
  url: '{% url "courses:like" %}',
  dataType: 'json',
  data: {
    videoid: $('#like-button').val(),
    csrfmiddlewaretoken: '{{ csrf_token }}',
    action: 'post'
  },
  success: function (json) {
    document.getElementById("like-count").innerHTML = json['result']
  },
  error: function(xhr,errmsg,err) {
    console.log(xhr.status + ": " + xhr.responseText);
  }  
});
});

detail_video.html

<h5 class="mt-4">{{ object.caption }}</h5>
            <div class="row">
                <div class="col-md-6 text-muted">
                    <p>{{ object.date_time | date:"M d, Y" }}</p>
                    <a class="category-link" href="{% url 'courses:category-list' object.category.pk %}">{{ object.category }}</a>
                </div>
                <div class="col-md-6 text-muted text-right">
                    {% if request.user.is_authenticated %}
                        <span class="" id="like-count">{{ object.like_count }}</span>
                        <button type="submit" class="btn btn-outline-light btn-outline-dark" id="like-button" value="{{ object.pk }}">
                            <ion-icon name="thumbs-up-sharp"></ion-icon>
                        </button>
                    {% endif %}
                    
                    
                </div>
            </div>

models.py

class Video(models.Model):
uploader = models.ForeignKey(User, on_delete=models.CASCADE)
caption = models.CharField(max_length=100)
video_description = models.TextField()
video_file = models.FileField(upload_to="courses/video_files", validators=[FileExtensionValidator(allowed_extensions=['mp4'])])
thumbnail = models.FileField(upload_to="courses/thumbnails", validators=[FileExtensionValidator(allowed_extensions=['png', 'jpg', 'jpeg'])])
date_time = models.DateTimeField(default=timezone.now)
category = models.ForeignKey('Category', on_delete=models.CASCADE)
likes = models.ManyToManyField(User, related_name='like', default='None', blank=True)
like_count = models.BigIntegerField(default='0')


def __str__(self):
    return self.caption
Вернуться на верх