Django admin сохраняет данные пользователей при удалении из списка like-list

Я создал кнопку like на django, которая сохраняет информацию о пользователях, нажавших на кнопку. Когда тот же пользователь снова нажимает на кнопку и "не нравится", счетчик рядом с кнопкой возвращается к числу до того, как пользователь нажал на нее, и пользователь должен быть удален из списка сохранения. Однако набор данных в админке сохраняет пользователя в списке как одного из тех, кто нажал на кнопку один раз после того, как он нажал ее.

Код не показывает ошибки, и я понятия не имею, что нужно изменить, чтобы удалить пользователей, которые "не понравились" из набора данных, потому что код

post_obj.liked.remove(user)

кажется, работает нормально.enter image description here

Мой models.py имеет следующий вид:

class Post(models.Model):
    posts = models.CharField(max_length=420, unique=True)
    slug = models.SlugField(max_length=42)
    date_created = models.DateTimeField(auto_now_add=True)
    liked = models.ManyToManyField(User, default=None, blank=True, related_name='liked')
    updated = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='author')

    def __str__(self):
        return str(self.posts)

LIKE_CHOICES = (
    ('like', 'like'),
    ('unlike', 'unlike'),
)

class Like(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    value = models.CharField(choices=LIKE_CHOICES, default='like', max_length=10)

Мой views.py имеет следующий вид:

def likes(request):
    user = request.user
    if request.method == 'POST':
        post_id = request.POST.get('post_id')
        post_obj = Post.objects.get(id=post_id)
        if request.user.is_authenticated:
            if user in post_obj.liked.all():
                post_obj.liked.remove(user)
            else:
                post_obj.liked.add(user)
            
            like, created = Like.objects.get_or_create(user=user, post_id=post_id)
            
            if not created:
                if like.value == 'like':
                    like.value = 'unlike'
                else:
                    like.value == 'like'
            like.save()

            data = {
            'value': like.value,
            'likes': post_obj.liked.all().count(),
        }
            return JsonResponse(data, safe=False)

    return redirect('/') 
Вернуться на верх