Pgtrigger для обновления столбца другой таблицы значением COUNT

Я пытаюсь использовать триггеры для отслеживания общего количества реакций на модели Video. Всякий раз, когда модель Reaction получает INSERT или UPDATE запрос реакции, она должна обновлять счетчик реакции видео со значением, возвращенным из функции COUNT. Я просто не могу понять, как сделать простой оператор/функцию обновления Video. Нужна помощь.

Текущий код:

class Video(models.Model):
  ...
  reaction_count = models.IntegerField(default=0, null=False, blank=False, unique=False)



class VideoReaction(models.Model):

    class Meta:
        db_table = "video_reaction"
        triggers = [
            pgtrigger.Trigger(
                name = "VideoReaction_TRIGGER_count",
                when = pgtrigger.After,
                operation = pgtrigger.Insert | pgtrigger.Update,
                func = "id_video__reaction_count = COUNT(reaction)"
            )
        ]

    id = models.CharField(max_length=10, primary_key=True, null=False, blank=False, unique=True)
    id_user = models.ForeignKey(User, db_column="id_user", on_delete=models.CASCADE)
    id_video = models.ForeignKey(Video, db_column="id_video", on_delete=models.CASCADE)
    reaction = models.BooleanField(null=False, blank=False)
    ...
Вернуться на верх