首页 > 解决方案 > 保存期间将一个模型字段计数的值保存到同一模型的另一个字段

问题描述

我正在开发一个池应用程序,并希望将 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

标签: pythondjangodjango-models

解决方案


推荐阅读