Счетчик Like/Dislike не добавляется/удаляется после щелчка в проекте Django

Это проект типа социальной сети (Django/Python), и когда я нажимаю на кнопку Like/Dislike, она не регистрирует Like или Dislike. Не получаю ошибку, просто ничего не происходит. Код ниже - заранее спасибо!

Вот весь код в моем views.py

from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import PostForm
from django.views.generic import ListView, CreateView, UpdateView, DeleteView
from django.views import View

from main_app.models import Post

class PostList(ListView):
    def get(self, request, *args, **kwargs):
        posts = Post.objects.all()
        form = PostForm()

        return render(request, 'main_app/post_list.html', {'post_list': posts})

    def post(self, request, *args, **kwargs):
        posts = Post.objects.all()
        form = PostForm(request.POST)

        if form.is_valid():
            new_post = form.save(commit=False)
            new_post.author = request.user
            new_post.save()
        return render(request, 'main_app/post_list.html', {'post_list': posts})


class PostCreate(CreateView):
  model = Post
  fields = '__all__'
  success_url = '/posts/'

class PostUpdate(UpdateView):
  model = Post
  fields = ['text']
  success_url = '/posts/'

class PostDelete(DeleteView):
  model = Post
  success_url = '/posts/'

def show(request, post_id):
    post = Post.objects.get(id=post_id)
    return render(request, 'show.html', {'post': post})

class AddLike(View):
    def post(self, request, pk, *args, **kwargs):
        post = Post.objects.get(pk=pk)

        is_dislike = False

        for dislike in post.dislike.all():
            if dislike == request.user.id:
                is_dislike = True
                break

        if is_dislike:
            post.dislike.remove(request.user)

        is_like = False

        for like in post.like.all():
            if like == request.user:
                is_like = True
                break

        if not is_like:
            post.like.add(request.user.id)

        if is_like:
            post.like.remove(request.user.id)

        next = request.POST.get('next', '/')
        return HttpResponseRedirect(next)

class AddDislike(View):
    def post(self, request, pk, *args, **kwargs):
        post = Post.objects.get(pk=pk)

        is_like = False

        for like in post.like.all():
            if like == request.user:
                is_like = True
                break
        
        if is_like:
            post.like.remove(request.user.id)
        
        is_dislike = False

        for dislike in post.dislike.all():
            if dislike == request.user:
                is_dislike = True
                break
        
        if not is_dislike:
            post.dislike.add(request.user.id)

        if is_dislike:
            post.dislike.remove(request.user.id)

        next = request.POST.get('next', '/')
        return HttpResponseRedirect(next)

Вот весь код в моем models.py

from django.db import models
from django.contrib.auth.models import User

class Post(models.Model):
    text = models.TextField()
    like = models.ManyToManyField(User, blank=True, related_name='like') 
    dislike = models.ManyToManyField(User, blank=True, related_name='dislike') 

    def __str__(self):
        return f"text: {self.text}"

Вот весь код в моем post_list.html

{% extends 'base.html' %} {% block title %} All Posts!!!!!! {% endblock %}
{%block content %}
<h1>All Posts!!</h1>
<hr />
{% for post in post_list %}
<div class="card">
  <a href="/posts/{{ post.id }}">
    <div class="card-content">
      <!-- <span class="card-title">{{ post.text }}</span> -->
      <p>{{ post.text }}</p>

      <div class="d-flex flex-row">
        <form method="POST" action="{% url 'like' post.pk %}">
          {% csrf_token %}
          <input type="hidden" name="next" value="{{ request.path }}" />
          <button type="submit">
            like
            <span>{{ post.like.all.count }}</span>
          </button>
        </form>

        <form method="POST" action="{% url 'dislike' post.pk %}">
          {% csrf_token %}
          <input type="hidden" name="next" value="{{ request.path }}" />
          <button type="submit">
            dislike
            <span>{{ post.dislike.all.count }}</span>
          </button>
        </form>
      </div>
    </div>
  </a>
</div>
{% endfor %} {% endblock %}
Вернуться на верх