Сохранение значения одного поля модели 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