Сохранение значения одного поля модели count в другое поле той же модели при сохранении

Я работаю над приложением для бассейна и хочу добавить атрибут total_likes к модели, который позволит мне подсчитывать количество пользователей, которым понравился вопрос, подобно тому, как это позволяет делать вопрос сообщества Youtube.

Я только что попытался переопределить save(*args, **kwargs), но получил много ошибок.

что мне теперь делать

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


class Question(models.Model):
    enter code here text = models.TextField()
    voters = models.ManyToManyField(to=User, blank=True, related_name='voters')
    impression = models.CharField(max_length=30, choices=impression_choices, blank=True, null=True)
    date_created = models.DateTimeField(auto_now_add=True)
    likes = models.ManyToManyField(to=User, related_name='likes', blank=True)
    total_likes = models.IntegerField(default=0)

    def __str__(self):
        return self.text


def save(self, *args, **kwargs):
    self.total_likes = self.likes_set.count()
    super().save(*args, **kwargs)

Модель ниже работает абсолютно нормально. В модели выше я пытался переопределить метод save(), но не знаю, как это сделать

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    text = models.CharField(max_length=20)
    votes = models.IntegerField(blank=True, default=0)

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