Переопределение модели удаления в django

У меня есть модель вопроса, а также модели Like и Dislike, я хочу, чтобы если пользователю уже понравился этот вопрос, а затем нажать кнопку Like, удалить объект Like и балл вопроса увеличится на один.

пример: вопрос имеет 10 like --> я отправляю like, поэтому вопрос имеет 11 like --> я также отправляю like, поэтому удаляю объект и вопрос like quantity (10)

class Like(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_("user"))
    question = models.ForeignKey(Question,on_delete=models.CASCADE,verbose_name=_("question"))

    def save(self, *args, **kwargs):
        if not self.pk:
            self.question.point += 1
            self.question.save()
        return super(Like, self).save(*args, **kwargs)


@receiver(post_delete, sender=Like)
def delete_like(sender, instance, using, **kwargs):
    print(instance.question.point) #point is 3
    instance.question.point -= 1
    print(instance.question.point) #point is 2

когда я печатаю, все в порядке, но когда я открываю базу данных, результат не тот же

edit:

    def get_context_data(self, *args, **kwargs):
        like_exist=bool(Like.objects.filter(user=self.request.user, question=self.get_object()))
        dislike_exist=bool(DisLike.objects.filter(user=self.request.user, question=self.get_object()))
        self.object=self.get_object()
        context = super(QuestionDetail, self).get_context_data(**kwargs)
        try:
            question = Question.objects.get(id=self.kwargs["pk"])
            context['detail'] = question
            context['like_ex']=like_exist
            context['dislike_ex']=dislike_exist
        except Http404:
            return reverse("Profile:error")

        if "like" or "dislike" in self.request.GET:

            if "like" in self.request.GET:

                    if Like.objects.filter(user=self.request.user, question=self.get_object()):
                        Like.objects.filter(user=self.request.user, question=self.get_object()).delete()
                    else:
                        Like.objects.create(user=self.request.user, question=self.get_object())
                        if DisLike.objects.filter(user=self.request.user, question=self.get_object()):
                            DisLike.objects.filter(user=self.request.user, question=self.get_object()).delete()

            if "dislike" in self.request.GET:

                    if DisLike.objects.filter(user=self.request.user, question=self.get_object()).exists():
                        DisLike.objects.filter(user=self.request.user, question=self.get_object()).delete()
                    else:
                        DisLike.objects.create(user=self.request.user, question=self.get_object())
                        if Like.objects.filter(user=self.request.user, question=self.get_object()).exists():
                            Like.objects.filter(user=self.request.user, question=self.get_object()).delete()

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